菲波那切數列問題(上台階問題)

2021-07-24 17:44:15 字數 636 閱讀 4743

通常,在最開始學c語言的時候,寫法如下:

int fib(int n)
實際需要的一種例項:

改進後的演算法:

int fib(int n)

return g;

}

這樣時間複雜度就降到了o(n),空間複雜度甚至降到了o(1)!那這時候重點來了,一直早有耳聞的「上台階問題」實際上就是菲波那切數列問題!

給定乙個有n個台階的樓梯,乙個人從下到上開始跳台階,這個人有兩種跳的方式:一次跳乙個台階,一次跳兩個台階;

問:從台階底端跳到台階頂端,有多少種跳台階的方式?

構建函式:

f(n)=0,n=0;

f(n)=1,n=1;

f(n)=f(n-1)+f(n-2),n>=2;

選擇一種例項,比如6階台階,可以從第4階上來,可以從第5階上來,從第4階上來有f(4)種方法,從第5階上來有f(5)種方法。其實顯而易見這就是菲波那切數列問題。

超級台階 菲波那切數列

描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少走法?注 規定從一級到一級有0種走法。輸入 輸入資料首先包含乙個整數n 1 n 100 表示測試例項的個數,然後是n行資料,每行包含乙個整數m,1 m 40 表示樓梯的級數。輸出對於每個測試例項,請輸出不同走法...

上台階問題

問題描述 現在小瓜想通過台階走上平台,最底層 小瓜所在的層 編號為1,最頂層編號為n。由於小瓜的腿比較短,他一次只能向上走1級或者2級台階。小瓜想知道他有多少種方法走上平台,你能幫幫他嗎?輸入 乙個整數n,其中2 n 25。輸出 一行乙個整數,表示小瓜上台階的方案數 資料範圍 對於12 的資料,2 ...

菲波那切數列

防止明天沒有時間或者忘了寫,今天先寫下吧。如果一對兔子每月生一對兔子 一對新生兔,從第二個月起就開始生兔子 假定每對兔子都是一雌一雄,試問一對兔子,一年能繁殖成多少對兔子?首先這個題目的設定是原來的一對兔子在一開始是新生的兔子,這樣這對兔子在第二個月才能生下一對新的兔子 也就是第三個月開始,第二個月...