數字補“0”
阿新 • • 發佈:2021-01-30
技術標籤:Leetcode之劍指offerleetcode動態規劃java資料結構演算法
題目
寫一個函式,輸入 n ,求斐波那契(Fibonacci)數列的第 n 項(即 F(N))。斐波那契數列的定義如下:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
示例
輸入:n = 2
輸出:1
示例
輸入:n = 5
輸出:5
自己看解題
class Solution {
//例子: 0 1 1 2 3 5 8
public int fib(int n) {
// 初始化第一第二個
int a = 0;
int b = 1;
// 判斷特殊情況
if(n==0){
return 0;
}else if(n==1){
return a + b;
}else{
// 當n大於2時
for(int i = 0;i<n;i++){
// 得到總數
a = a + b;
// 得到前一個數字
b = a - b;
// 為什麼要取模:防止溢位,模1000000007後,可以保證值永遠在int的範圍內。
a = a % 1000000007;
}
return a;
}
}
}
- 也還挺快的~