斐波那契數列及其變型

2021-09-23 10:35:32 字數 1208 閱讀 5268

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

n<=39

f(n) = f(n-1) + f(n-2)

class solution 

;int

fibonacci

(int n)}}

};

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。

n級台階有f(n)種跳法。假設第一次跳1級,那麼剩下n-1級台階有f(n-1)種跳法;假設第一次跳2級,那麼剩下n-2級台階有f(n-2)種跳法。於是f(n)=f(n-1)+f(n-2)

class solution 

;int

jumpfloor

(int number)}}

};

乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

與上題跳台階類似。假設n級台階有f(n)種跳法。那麼第一次跳台階可以跳1級,2級,…,n級。

則f(n)=f(n-1)+f(n-2)+…+f(1)

再有f(n-1)=f(n-2)+f(n-3)+…+f(1)

所以f(n)=f(n-1)+f(n-1)=2*f(n-1)

class solution 

;int

jumpfloorii

(int number)}}

;

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?

同樣,我們假設2*n的大矩形有f(n)種覆蓋方法。第乙個2*1的矩形如果豎著放,那麼剩下2*(n-1)的矩形有f(n-1)種覆蓋方法;如果橫著放,那麼剩下2*(n-2)的矩形有f(n-2)種覆蓋方法。於是f(n)=f(n-1)+f(n-2)

這裡的n理解為大矩形剩餘邊長也行,理解為小矩形剩餘塊數也行。

斐波那契數列及其應用

這個數列從第2項開始,每一項都等於前兩項之和。常規解法 long long fibonacci unsigned int n 效率更高的解法 include using namespace std int main cout return 0 問題的變種 問題描述 乙隻青蛙一次可以跳上1級台階,也可...

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...