青蛙跳台階

2021-08-18 07:26:48 字數 571 閱讀 6460

wang-程式設計日記四:

青蛙跳台階問題(斐波拉契蛾數列應用)

乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階,請問這只青蛙跳上n級台階總共有多少種跳法?

解法一://遞迴 

青蛙只有兩種跳法要麼跳一級要麼跳兩級,如果從第n次開始回溯這思考,(n有兩種可能n-1或n-2,n-1有兩種可能n-2或n-3,n-2有兩種可能n-3或n-4)。

所以從第一次開始思考(假設台階大於2,那麼3有兩種可能1或2,4有兩種可能3或2,··)發現規律當前台階數可能跳法=台階數-1可能跳法+台階數-2可能跳法(f(n) = f(n - 1)+f(n -2))遞迴實現還是比較簡單的。

**:int fun(int n )

4                   3

3    2              2     1

2           1

在解法1中會發現假設n=5,那麼他要計算重複的兩次n = 3,如果n的次數增大則重複計算的次數也越多,所以如果把計算過的n存在陣列中,每次計算直接利用訪問陣列那麼計算速度就會優化非常多

**:int climbstairs(int n)

青蛙跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1 如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n 1個台階,跳法是f n 1 2 假定第一次跳的是2階,那麼剩下的是n 2個台階,跳法是f n 2 3 總跳法為 f n f n...

青蛙跳台階

之前面試遇到了這種題目,不會,後來搜尋了一下,感覺分析的很好 青蛙跳乙個n階的台階,每次可以跳1階或者2階,求跳完n階y有多少種方法。分析 n 1,f n 1 n 2,f n 2 n 3,f n 3 n 4,f n 5 可以發現 f n f n 1 f n 2 由此也可以推想 比如要跳到第4階樓梯上...

青蛙跳台階

難易程度 中等 題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。在不考慮青蛙健康狀況的情況下 求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 在本題的描述中,青蛙的行動只有兩種可能 一次跳乙個台階或者兩個台階,設n階台階的跳法為 f n 如果第一次跳了一階,那麼剩下的n 1階的跳法為f n...