JSK 16 爬樓梯 基礎

2021-08-27 23:39:30 字數 947 閱讀 4385

爬樓梯

假設你現在正在爬樓梯,樓梯有 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 階 解題思路 實現了兩種方法,但是第一種超出時間限制 因為遞迴的時候方...