1. 程式人生 > >牛客66題(7)斐波那契數列

牛客66題(7)斐波那契數列

大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。

n<=39;斐波那契數列特徵為除第一項與第二項外其餘項均為前兩項的和。

class Solution {
public:
    int Fibonacci(int n) {
        if(n==0)
        {
            return 0;
        }
        if (n==1||n==2)
        {
            return 1;
        }
        
        int sum=0,m=0,x=1;
            for(int i=1;i<n;i++)
            {
                sum=m+x;
                m=x;
                x=sum;
                
            }
       return sum;
    }
};

動態規劃問題:關鍵點在FOR迴圈內部,首先將初始兩項相加的和存起來,因為此數列前兩項和為第三項的值,要求某一項的值也就是某項值前兩項的和,同時這前兩項又分別是他們自己前兩項的和, 所以定義3個變數,一個變數用於存放兩項的和,然後把和賦值給第二項,原來第二項變成第一項。