思路:递归,但是有重复计算。
第二次迭代的方式:时间复杂度o(n)
最终的是使用数学公式o(1)
static int fibonacci(int n) {
if (n == 0)
return 0;
if (n == 1)
return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
static int fibonacci1(int n) {
int[] data = new int[n + 1];
data[0] = 0;
data[1] = 1;
for (int i = 2; i <= n; i++) {
data[i] = data[i - 1] + data[i - 2];
}
return data[n];
}