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。以此类推其他数字。
原文由 Marz 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您将 3 传递给您的函数,它将执行以下操作: