1. 程式人生 > 其它 >力扣---509. 斐波那契數

力扣---509. 斐波那契數

斐波那契數 (通常用 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         } else
if (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 }

執行結果: