乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。
思路:這個問題歸根結底還是乙個費布拉奇數列,設跳法為f(n),則當青蛙第一次跳一級台階時,剩下n-1個台階,有f(n-1)種跳法,當青蛙第一次跳二級台階時,剩下n-2個台階,有f(n-2)種跳法。
故得到數學關係:f(n) = f(n-1) + f(n-2);
第一種:遞迴實現
int f(int n) {
if (n == 1 || n == 2
)
return n;
else
return f(n - 1) + f(n - 2);
第二種:非遞迴實現
public static int calc3(int n) {
if (n == 1 || n == 2)
return n;
int s1 = 1, s2 = 2, s3 = 1;
for (int i = 3; i <= n; ++i) {
s3 = s1 + s2;
s1 = s2;
s2 = s3;
return s3;
青蛙跳台階問題
題目 乙隻青蛙一次可以跳上 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種跳...
青蛙跳台階問題
問題一 有乙隻青蛙,需要跳上100級台階。青蛙每次可以調一級或者兩級台階。問青蛙有多少種方式可以跳100級台階。思路 逆推 當青蛙站在100級台階上時,那它跳上100級時有可能是從99級跳一級上來的,也可能是從98級跳兩級跳上來的 從98級跳兩個一級包括在從99級跳一級情況內,所以不予考慮 所以f ...