public class Fibonacci {
public static long fib(int n) {
if (n <= 1) return n;
else return fib(n-1) + fib(n-2);
}
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
for (int i = 1; i <= N; i++)
System.out.println(i + ": " + fib(i));
}
}
假设用户输入“java Fibonacci 7”,结果将是这样的:
1:1
2:1
3:2
4:3
5:5
6:8
7:13
我似乎对它的工作原理完全感到困惑,从参数 3 开始。当 fib(i) 方法通过 3 时,它不应该也返回 3,因为如果 n = 3 那么 fib(n-1) 的总和/ n-1 是 2 / 并且 fib(n-2) / n-2 是 1 / 是 3。以此类推其他数字向前。