diff --git a/.idea/misc.xml b/.idea/misc.xml index 5af9c98..2928d94 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,6 @@ + - + \ No newline at end of file diff --git a/src/part5/aufg1.java b/src/part5/aufg1.java index f6bdace..bafa787 100644 --- a/src/part5/aufg1.java +++ b/src/part5/aufg1.java @@ -21,12 +21,12 @@ public class aufg1 { result = 0; } else if (number < 2) { result = 1; - }else if (number == 10) { // Optimization1 - result = 89; - }else if (number == 20) { // Optimization2 - result = 10946; - }else if (number == 30) { // Optimization3 - result = 1346269; +// }else if (number == 10) { // Optimization1 +// result = 89; +// }else if (number == 20) { // Optimization2 +// result = 10946; +// }else if (number == 30) { // Optimization3 +// result = 1346269; }else { result = fibonacciRec(number-1) + fibonacciRec(number-2); } @@ -34,11 +34,30 @@ public class aufg1 { return result; } + public static int fiboTailRec(int number){ + return helper(++number, new int[] {0,1}); + } + + private static int helper(int number, int[] result){ + if (number < 0){ + return 0; + } + if (number < 2){ + return result[number]; + } + + int temp = result[0] + result[1]; + result = new int[] {result[1], temp}; + + return helper(number-1, result); + } + public static void main(String[] agrs){ // Fib(47) causes an Integer Overflow for (int i=0; i<46; i++) { System.out.println("i " + i + ": " + fibonacciIter(i)); System.out.println("i " + i + ": " + fibonacciRec(i)); + System.out.println("i " + i + ": " + fiboTailRec(i)); System.out.println("=========="); } } diff --git a/src/part5/aufg2/Demo.java b/src/part5/aufg2/Demo.java index 6c28947..b74172b 100644 --- a/src/part5/aufg2/Demo.java +++ b/src/part5/aufg2/Demo.java @@ -4,9 +4,9 @@ public class Demo { public static void main(String[] args) { Queenproblem Q = new Queenproblem(); Q.solve(); -// System.out.println("========\n"); -// Q.setField(new int[]{0,0,0,0,0,0,0,0}); -// Q.solve(); + System.out.println("====================================\n"); + Q.setField(new int[]{0,0,0,0,0,0,0,0}); + Q.solve(); } }