LeetCode LCR126[斐波那契數]

EricsT發表於2024-12-05

題目

連結

LeetCode LCR126[斐波那契數]

詳情

LeetCode LCR126[斐波那契數]

例項

LeetCode LCR126[斐波那契數]

提示

LeetCode LCR126[斐波那契數]

題解

思路

首先想到用遞迴來求解,F(n) = F(n - 1) + F(n - 2)

但是吧,一看提示啊,0<= n <= 100,遞迴執行100次,那肯定是會超時的噻

所以單純遞迴肯定是不可行的,此處我採用迴圈代替遞迴

當 n = 0 時,返回 0

當 n = 1 時,返回 1

當 n 大於 1 時,用迴圈代替遞迴來求解

迴圈體:F(n) = F(n - 1) + F(n - 2)

迴圈由 2 開始,由 n 結束

依次進入迴圈求得結果

並且求得的結果需要進行取模操作:F(n) = F(n) % 1000000007;

不然啊,如果不進行取模操作的話啊,就會越界啊,所以一定要記得取模

程式碼

class Solution {
public:
    int fib(int n) {
        
        if (0 == n)
            return 0;

        if (1 == n)
            return 1;
        
        long long fn_1 = 1, fn_2 = 0, iRet = 0;

        for (int i = 2; i  < n + 1; i++)
        {
            iRet = fn_1 + fn_2;
            iRet = iRet % 1000000007;
            fn_2 = fn_1;
            fn_1 = iRet;
        }

        return iRet;
    }
};

類似題目

LeetCode 1137[第N個泰波那契數] 題目

LeetCode 509[斐波那契數] 題目

類似題解

LeetCode 1137[第N個泰波那契數] 題解

LeetCode 509[斐波那契數] 題解

相關文章