斐波那契數列及其應用

2021-07-12 02:16:48 字數 1053 閱讀 4587

這個數列從第2項開始,每一項都等於前兩項之和。

常規解法

long long fibonacci(unsigned int n)

效率更高的解法

#include

using namespace std;

int main()

cout

return 0; }

問題的變種:

問題描述:

乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階,請問這只青蛙跳上n級的台階總共有多少種跳法?

問題分析:

設青蛙跳上n級台階的跳法為f(n)種.

設fibonacci數列的第x項值為fibo(x).

(1)當n=1時,f(n)=1

(2)當n=2時,f(n)=2

(3)當n>2時,分析可知,在跳上第n級台階前一步,必然是在第(n-1)或(n-2)級台階,故有f(n) = f(n-1) + f(n-2); 依此類推...

本質上還是斐波那契數列

下面看乙個矩形覆蓋問題

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

輸入:輸入可能包含多個測試樣例,對於每個測試案例,

輸入包括乙個整數n(1<=n<=70),其中n為偶數。

輸出:對應每個測試案例,

輸出用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有的方法數。

觀察題目中的矩形,2*n的,是個長條形。本來腦中想象的是複雜的華容道,但是既然只是簡單的長條形,那麼依然逆向分析。既然是長條形的,那麼從後向前,最後乙個矩形2*2的,只有兩種情況:

第一種是最後是由乙個2*(n-1)的矩形加上乙個豎著的2*1的矩形

另一種是由乙個2*(n-2)的矩形,加上兩個橫著的2*1的矩形

本質上還是斐波那契數列

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

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

斐波那契數列應用

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

斐波那契數列及其變型

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 f n f n 1 f n 2 class solution int fibonacci int n 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法...