爬樓梯
假設你現在正在爬樓梯,樓梯有 n 級。每次你只能爬 1 級或者 2 級,那麼你有多少種方法爬到樓梯的頂部?
第一行輸入乙個整數 n(1≤n≤50),代表樓梯的級數。
輸出爬到樓梯頂部的方法總數。
樣例輸入
5樣例輸出
8
問題描述:(略)
問題分析:
站在樓梯的第n級想一下,前一步是從**來的,問題就清楚了。
由於每次只能上一級或兩級,那麼f(n)=f(n-2)+f(n-1)。這不就是乙個菲波拉契數列嗎?不就是乙個遞推問題?
不僅需要給出遞推式,還需要給出遞推終止條件:
f(1)=1,只能爬1級到達第1級台階上;
f(2)=2,可以一次爬2級到達第2級台階上,也可以兩次爬1級到達第2級台階上;
f(n)=f(n-2)+f(n-1),n>2。
更詳細深入的討論,可以參見參考鏈結。
程式說明:
寫乙個遞迴程式來計算會超時,還是遞推吧!
jsk-4 簡單斐波那契【入門】
hdu2041 超級樓梯【遞推+水題】
題記:遞迴與遞推是程式設計基礎中的基礎。
ac的c語言程式如下:
/* jsk-16 爬樓梯 */
#include int fib(int n)
return f2;
}} int main()
超時的c語言程式(5組測試樣例通過4組,超時)如下:
/* jsk-16 爬樓梯 */
#include int fib(int n)
int main()
16 爬樓梯問題
題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?一開始拿到這道題,也是一臉懵逼,網上找點思路,其實就是乙個斐波那契數列,瞬間把 擼了出來,不得不說有了思路就好辦,其餘都是浮雲,就本題而言,就是2和1的組合成乙個數字的問題,其實...
python爬樓梯遞迴 爬樓梯(Python3)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...
python爬樓梯演算法 爬樓梯(Python3)
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...