劍指 offer 10- i. 斐波那契數列
寫乙個函式,輸入 n ,求斐波那契(fibonacci)數列的第 n 項。斐波那契數列的定義如下:3.1.1 思路f(0) = 0, f(1) = 1
f(n) = f(n - 1) + f(n - 2), 其中 n > 1.
斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
示例 1:
輸入:n = 2
輸出:1
示例 2:
輸入:n = 5
輸出:5
0 <= n <= 100
f(0) = 0, f(1) = 1
f(n) = f(n - 1) + f(n - 2), 其中 n > 1
利用遞迴的方法, 把 f(n
)f(n)
f(n)
問題的計算拆分成 f(n
−1
)f(n−1)
f(n−1)
和 f(n−
2)
f(n−2)
f(n−2)
兩個子問題的計算,並遞迴,以 f(0
)f(0)
f(0)
和 f(1)
f(1)
f(1)
為終止條件,雖然能求出結果,但是最終會超時;
3.1.2 實現
class
solution
return
(fib
(n -1)
+fib
(n -2)
)%1000000007;}
}
3.2.1 思路
f(0) = 0, f(1) = 1
f(n) = f(n - 1) + f(n - 2), 其中 n > 1
利用上述條件,利用動態規劃的思想;
3.2.2 實現
public
intfib
(int n)
return first;
}
劍指 Offer 10 I 斐波那契數列
題目描述 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1,f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9 7 1000000007...
劍指 Offer 10 I 斐波那契數列
題目鏈結 題目描述 1.寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9 7 100...
劍指 Offer 10 I 斐波那契數列
寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9 7 1000000007 如計算初...