思路如下:
1.假設當有n個台階時有f(n)種走法。
2.青蛙最後一步要麼跨1個台階要麼跨2個台階。
3.當最後一步跨1個台階時即之前有n-1個台階,根據1的假設即n-1個台階有f(n-1)種走法。
4. 當最後一步跨2個台階時即之前有n-2個台階,根據1的假設即n-2個台階有f(n-2 )種走法。
5.顯然n個台階的走法等於前兩種情況的走法之和即f(n)=f(n-1)+f(n-2)。
6.找出遞推公式後要找公式出口,即當n為1、2時的情況,顯然n=1時f(1)等於1,f(2)等於2。
7. | 1, (n=1)
f(n) = |2, (n=2)
| f(n-1)+f(n-2) ,(n>2,n為整數)
最終形成了乙個斐波那契數列,c++**如下:
public:
int jumpfloor(int number)
int a = 1;
int b = 2;
if (number == 1)
if (number == 2)
int result = 0;
for(int i = 2; i < number; ++i)
return
result;
}};
遞迴和迴圈 青蛙跳台階
青蛙跳台階題目 思路 只有1級台階,只有一種跳法 如果有2級台階,那麼就有兩種跳法 如果有n n 2 級台階的話,n級台階的跳法可以看成函式f n 那麼第一次跳的時候有兩種選擇,一是跳1級,那麼這種跳法的數目就等於f n 1 二是跳2級的話,那麼這種跳法的數目就等於f n 2 所以n級台階的跳法應該...
劍指offer 跳台階(迴圈和遞迴)
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。分析 考慮1個台階,只有1跳法,則 f 1 1 考慮2個台階,可以1級級條,可以一次跳2級,有兩種跳法,則f 2 2 考慮3個台階,它可以由1級跳來得到,也可以由2級跳來得到,所以它的跳法為 f 3 1 f 3...
跳台階問題 遞迴演算法
首先我們說說什麼是遞迴。程式呼叫自身的程式設計技巧稱為遞迴 recursion 遞迴做為一種演算法在 程式語言 中廣泛應用。乙個過程或 函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題...