演算法學習 樓梯的走法

2021-10-05 02:38:20 字數 576 閱讀 4615

題目描述

假設有n階樓梯,小明一次可以選擇走1階,也可以選擇走2階,問多少種走法。比如有5階台階,共有8種走法。

1 1 1 1 1

1 1 1 2

1 1 2 1

1 2 1 1

1 2 2

2 1 1 1

2 1 2

2 2 1

要求使用遞迴解法。

輸入描述

輸入n,表示n階樓梯,1<=n<=40

輸出描述

輸出樓梯的走法總數。

樣例輸入

5
樣例輸出
8
思路分析:

以樣例為例:有5個台階,問一共有多少種走法?

一次可以走1步或2步,故總走法等於3個台階的走法加4個台階的走法。

判斷結束的條件為,如果當前台階只剩0個或1個,那麼別無選擇,返回1;不然的話,繼續遞迴。

**如下:

#include

intstair

(int n)

}int

main()

遞迴 樓梯的走法

題目描述 假設有n階樓梯,小明一次可以選擇走1階,也可以選擇走2階,問多少種走法。比如有5階台階,共有8種走法。1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 2 2 2 1 1 1 2 1 2 2 2 1 要求使用遞迴解法。輸入描述 輸入n,表示n階樓梯,1 n 40 輸出...

關於走樓梯的遞迴演算法

題目 乙個共有20個台階的樓梯,從下面走到上面。一次只能邁乙個台階或兩個台階,並且不能後退,走完這個樓梯共有多少種方法。分析 1 步台階只有1種走法 1 2步台階2種 11 2 3步台階有3種 111 12 21 4 步台階有5種 1111 112 121 211 22 5 步台階有8種 11111...

走樓梯遞迴遞推的演算法總結

走樓梯的演算法總結 1 一次可以走一階或兩階 2 一次可以走一階或兩階或三階 3 一次可以走一階或兩階,最終走偶數步,或者奇數步 兩種實現方式 1 遞迴 2 遞推 1 遞迴的思想 就是乙個問題可以拆分成他的子問題 子問題和原問題有相同的結構 每一次縮小一次問題的規模,規模最小的時候就是遞迴函式的出口...