遞迴和遞推解決爬樓梯問題

2021-06-08 21:58:47 字數 536 閱讀 9157

題目:樓梯一次可以爬1級,也可以爬2級,有n級樓梯,有多少種走法?

看到此題首先找出規律

1 走到第1級,有1種方法

2 走到第2級,有2種方法

3 走到第3級,有3種方法

4 走到第4級,有5種方法

5 走到第5級,有8種方法

以此類推,後面的總等於前面兩級方法之和,

現在使用遞迴和遞推兩種方法解決本問題

利用遞迴實現

#include int climb(int pos)

int main()

利用遞推實現,編譯時注意要加上 -std=c99

#include int main()

{ int size;

printf("please input:");

scanf("%d", &size);

int stair[size];

stair[0] = 1;

stair[1] = 2;

for(int i=2; i

遞推解決爬樓梯問題

每次你可以爬 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 由於一開始就在第一級,...

爬樓梯(遞迴)

4017 爬樓梯描述 樹老師爬樓梯,他可以每次走1級或者2級,輸入樓梯的級數,求不同的走法數。例如 樓梯一共有3級,他可以每次都走一級,或者第一次走一級,第二次走兩級也可以第一次走兩級,第二次走一級,一共3種方法。輸入輸入包含若干行,每行包含乙個正整數n,代表樓梯級數,1 n 30 輸出不同的走法數...