目錄
題目:
求斐波那契數列的第n項。思路:
先把已經得到的數列中間項保存起來,在下次需要計算的時候我們先查找一下,如果前面已經計算就不要在重複計算了。步驟:
1.首先根據f(0)和f(1)算出f(2)。2.再根據f(1)和f(2)算出f(3)......以此類推就可以算出第n項了。
代碼:
package test;
public class Fibonacci {
public static void main(String[] args) {
System.out.println(fibo(5));
}
public static long fibo(int n) {
int[] result = {0, 1};
if(n < 2)
return result[n];
long fibNMinusOne = 1;
long fibNMinusTwo = 0;
long fibN = 0;
for (int i = 2; i <= n; i++) {
fibN = fibNMinusOne + fibNMinusTwo;
fibNMinusTwo = fibNMinusOne;
fibNMinusOne = fibN;
}
return fibN;
}
}
注:該算法的時間複雜度爲O(n)。