牛客66題(7)斐波那契數列
阿新 • • 發佈:2018-11-24
大家都知道斐波那契數列,現在要求輸入一個整數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個變數,一個變數用於存放兩項的和,然後把和賦值給第二項,原來第二項變成第一項。