遞迴和迴圈 青蛙跳台階

2021-09-02 08:14:58 字數 692 閱讀 2810

青蛙跳台階題目

思路:只有1級台階,只有一種跳法

如果有2級台階,那麼就有兩種跳法

如果有n(n>2)級台階的話,n級台階的跳法可以看成函式f(n),那麼第一次跳的時候有兩種選擇,一是跳1級,那麼這種跳法的數目就等於f(n-1)。二是跳2級的話,那麼這種跳法的數目就等於f(n-2)。所以n級台階的跳法應該是等於f(n-1) + f(n-2)。

/**

* 遞迴寫法

* 青蛙跳台階

* @param n 幾級台階

* @return

*/public static int frogstep(int n)

if (n == 2) else

}/**

* 迴圈寫法

* @param n

* @return

*/public static int frogstepcycle(int n)

if (n == 2)

int fibone = 1;

int fibtwo = 1;

int fibn = 0;

for (int i = 1; i < n; i++)

return fibn;

}

擴充套件

題目修改為,青蛙一次可以跳1級,也可以跳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...