遞推之爬樓梯

2021-08-17 05:11:31 字數 777 閱讀 8091

爬樓梯

time limit: 1000 ms memory limit: 65536 kib

submit statistic discuss

problem description

小明是個非常無聊的人,他每天都會思考一些奇怪的問題,比如爬樓梯的時候,他就會想,如果每次可以上一級台階或者兩級台階,那麼上 n 級台階一共有多少種方案?

input

輸入包含多組測試資料,對於每組測試資料:

輸入只有一行為乙個正整數 n(1 ≤ n ≤ 50)。

output

對於每組測試資料,輸出符合條件的方案數。

注意:64-bit 整型請使用 long long 來定義,並且使用 %lld 或 cin、cout 來輸入輸出,請不要使用 __int64 和 %i64d。

sample input2 4

sample output2 5

hint

source

**:

#include 

#include

int main()

while(~scanf("%d",&n))

return

0;}

思路:

其實爬樓梯的題和骨牌堆放的題是一樣的,都是看最開始的那個,對n來說,如果最開始的是爬的1層,那麼就看剩下的f(n-1)節台階怎麼走了,當第乙個是2層的時候,就看剩下的f(n-2)節台階怎麼走了,於是這兩種情況相加就是答案

note:因為是遞推,所以數會非常大,所以要用長整型

遞推解決爬樓梯問題

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 2 階示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1 階 1 階 1 階 1 階 2 階 2 階 1 階 思...

爬樓梯問題總結 (遞推)

有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?首先題目限制只能走一級或者兩級,所以逆向思考一下,要到達n級樓梯,只有兩種方式,從 n 1 級 或 n 2 級到達的。所以可以用遞推的思想去想這題,假設有乙個陣列s n 那麼s 1 1 由於一開始就在第一級,...

演算法之爬樓梯

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?沙雕解法一 利用遞迴,就是最後一步一定是前一步走一步或倒退兩步走兩步,超時!include pch.h include include using namespace std i...