青蛙跳台階問題

2021-07-16 02:55:28 字數 929 閱讀 8265

問題一:有乙隻青蛙,需要跳上100級台階。青蛙每次可以調一級或者兩級台階。問青蛙有多少種方式可以跳100級台階。

思路:逆推    當青蛙站在100級台階上時,那它跳上100級時有可能是從99級跳一級上來的,也可能是從98級跳兩級跳上來的(從98級跳兩個一級包括在從99級跳一級情況內,所以不予考慮);所以f(100) = f(99)+f(98)。而跳上99級就分為從98級跳一級和從97級跳兩級,f(99) = f(98)+f(97);跳上98級分為從97級跳一級和從96級跳兩級f(98) = f(97)+f(96);.....以此類推..當沒有台階時,有0種方式;當有一級台階時,有一種方式;當有兩級台階時,有兩種方式;這就是它的出口。

從上面的分析可以得出遞迴公式:f(n) = f(n-1)+f(n-2)

;   

可以看出就是乙個斐波那契數列。

function fn(n)

else if(n == 1)

else if(n == 2)

else if(n >2)

}

問題二:有乙隻青蛙,需要跳上100級台階。青蛙每次可以跳任意級台階。問青蛙有多少種方式可以跳100級台階。

這個問題跟上面的一樣,當青蛙站在100級台階時,它可以從99級跳一級上來,可以從98級跳兩級上來,可以從97級跳**上來....以此類推,最後可以從第一級直接跳100級上來。

f(n) = f(n-1)+f(n-2)+f(n-3)+....+f(1)+1;

f(n-1)=          f(n-2)+f(n-3)+.....+f(1)+1;

兩式相減得: f(n) = 2*f(n-1);

function fn(n)

return array[n-1];

}

青蛙跳台階問題

題目 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。我的思路 最開始我的思路是把這個看成是乙個數學問題,n i 1 k 2先把所有可能滿足這個公式的i和k求出來。然後在對i和k做排列組合。很明顯i的範圍應該是0 public int jumpflo...

青蛙跳台階問題

1 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。2 乙隻青蛙一次可以跳上1級台階,也可以跳上2 級 它也可以跳上n 級,此時該青蛙跳上乙個n級的台階總共有多少種跳法?分析 1 當n 1,只有1中跳法 當n 2時,有兩種跳法 當n 3 時,有3種跳...

青蛙跳台階問題

題目如下 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 1,解題思路,假設只有乙個台階或者有兩個台階,算一下有幾種跳法,然後從中找他們之間的聯 假設台階很少,計算有多少種跳法 假設的台階數 計算的跳法數 1 個 1 種 2 個 2...