递归时间复杂度过高,故用迭代来做。
生成两个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; }