力扣---509. 斐波那契數
阿新 • • 發佈:2022-12-11
斐波那契數 (通常用 F(n) 表示)形成的序列稱為 斐波那契數列 。該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
給定 n ,請計算 F(n) 。
示例 1:
輸入:n = 2
輸出:1
解釋:F(2) = F(1) + F(0) = 1 + 0 = 1
示例 2:
輸入:n = 3
輸出:2
解釋:F(3) = F(2) + F(1) = 1 + 1 = 2
示例 3:
輸入:n = 4
輸出:3
解釋:F(4) = F(3) + F(2) = 2 + 1 = 3
提示:
0 <= n <= 30
來源:力扣(LeetCode)
連結:https://leetcode.cn/problems/fibonacci-number
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
公式為:F(n) = F(n - 1) + F(n - 2),每一項都是前兩項之和,用 f0儲存前兩項,f1儲存前一項,ans儲存該項。
則:ans = f0 + f1;
此時 f0 = f1; f1 = ans 分別表示下一項的前兩項
程式碼如下:
1 class Solution { 2 public int fib(int n) { 3 int f0 = 0; 4 int f1 = 1; 5 int ans = 0; 6 if (n == 0) { 7 return 0; 8 } elseif (n == 1) { 9 return 1; 10 } 11 for (int i = 1; i < n; i ++) { 12 ans = f0 + f1; 13 f0 = f1; 14 f1 = ans; 15 } 16 return ans; 17 } 18 }
執行結果: