lintcode第366題
斐波納契數列 中文english 查詢斐波納契數列中第 n 個數。首先想到的是遞迴方法所謂的斐波納契數列是指:
前2個數是 0 和 1 。 第 i 個數是第 i-1 個數和第i-2 個數的和。 斐波納契數列的前10個數字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …
樣例 樣例 1: 輸入: 1
輸出: 0
樣例解釋: 返回斐波那契的第乙個數字,是0.
樣例 2: 輸入: 2
輸出: 1 樣例解釋:
返回斐波那契的第二個數字是1.
注意事項 在測試資料中第 n 個斐波那契數不會超過32位帶符號整數的表示範圍
public
intfibonacci
(int n)
然鵝,
於是發現遞迴方法,並不滿足此題的要求,於是採用非遞迴方法:
/**
* @param n: an integer
* @return: an ineger f(n)
*/public
intfibonacci
(int n)
return result;
}
分析:使用低估的時間複雜度會是複雜度會是o(2^n)。因此會超時。 斐波那契數列 遞迴與非遞迴
首先來說下遞迴,遞迴的思想是大事化小。斐波那契數列 1,1,2,3,5,8,13,21.設f n 是第n個斐波那契數,當n 2,斐波那契數都為1 當n 2,那麼第f n 個斐波那契數就等於前兩個斐波那契數之和。遞迴的 實現 includeint fbnq int n int main 輸入10,得到...
007 1 斐波那契數列的非遞迴解法
public class demo06 public static int fibonacci int n 由於使用遞迴解法進行了許多重複的計算,比如 計算f 10 要先計算f 9 和f 8 計算f 9 要先計算f 8 和f 7 僅僅這兩步f 8 就被計算了2次。當計算f 100 時,使用遞迴法求解...
數學 斐波那契數列 遞迴 非遞迴
include pch.h include using std cout using std cin typedef long long ll int fib int n ll fib notrec int n int main return 0 題目給的f 0 1,就這麼寫了 斐波那契第n項 時間...