小明爬樓梯

2021-10-18 04:07:49 字數 1064 閱讀 2495

問題描述:

小明每次上台階時,要麼1次上1個台階,要麼1次上兩個台階。現在他站在0級台階,要上到第k(10<=k<=20)級台階,請問總共有多少種走法。

格式

輸入格式

一行乙個整數k(10<=k<=20)

輸出格式

一行乙個整數sum代表總共有多少種走法

樣例

樣例輸入

樣例輸出

演算法思路:

台階數為 1 時:1 種方法

台階數為 2 時:2 種方法

台階數為 3 時:3 種方法

台階數為 4 時:5 種方法

台階數為 5 時:8 種方法

…推到這裡就不難發現從台階是為 3 開始,可用的方法就等於前兩種台階數對應的方法數之和。再想想這不就是乙個斐波那契數列嗎!到這裡問題就迎刃而解了。

對於這樣的題目,開始看著確實比較懵,但是靜下心來仔細思考一下就不難發現其中的規律。所以做題要肯動手,在我看來不動手就說題目難那就是在耍流氓。

c語言**:

遞迴法

#include

intfun

(int k)

else sum =

fun(k-1)

+fun

(k-2);

return sum;

}int

main()

迴圈法

#include

intfun

(int k)

return f3;

}int

main()

ps:

斐波那契數列可以用遞迴法或迴圈法求出。但通常情況下,遞迴法的時間複雜度都要慢與迴圈法,所以有時題目對執行時間有較嚴苛的要求,那就用迴圈法。至於為什麼,我也不大清楚。

小明爬樓梯

include include using namespace std 可愛的小明特別喜歡爬樓梯,他有的時候一次爬乙個台階,有的時候一次爬兩個台階,有的時候一次爬三個台階。如果這個樓梯有36個台階,小明一共有多少種爬法呢?n層台階,走一步剩下n 1層台階,有n 1層台階它自己那麼多種走法,即有f n...

python爬樓梯遞迴 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...

python爬樓梯演算法 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 和 2 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...