递归时间复杂度过高,故用迭代来做。
生成两个int变量backOne backTwo, 记录已经计算过的f(n)值。
public int Fibonacci(int n) {
if(n == 0)
return 0;
if(n == 1)
return 1;
// else
// return Fibonacci(n-1) + Fibonacci(n-2);
int backTwo = 0;
int BackOne = 1;
int current = 0;
for(int i = 2; i < n; i++ ){
current = backTwo + backOne;
backTwo = backOne;
backOne = current;
}
return current;
}