Fibonacci
Typer | Posted on | |
public class Fibonacci {
private static final String INDENT = " ";
static void printIndent(int depth) {
for (int i = 0; i < depth; i++) {
System.out.print(INDENT);
}
}
static int fib(int n, int depth) {
printIndent(depth);
System.out.println("Fib(" + n + ")");
switch (n) {
case 0 -> {
printIndent(depth);
System.out.println("= 0");
return 0;
}
case 1 -> {
printIndent(depth);
System.out.println("= 1");
return 1;
}
default -> {
int a = fib(n - 1, depth + 1);
int b = fib(n - 2, depth + 1);
int result = a + b;
printIndent(depth);
System.out.println("= " + result);
return result;
}
}
}
public static void main(String[] args) {
int n = 5;
System.out.println();
System.out.println("Tracing fib(" + n + "):\n");
int result = fib(n, 0);
System.out.println("\nFinal Result: fib(" + n + ") = " + result);
}
}