青蛙跳台階問題

2021-09-26 08:47:53 字數 1163 閱讀 4481

這個是個經典問題

一開始我推導的,

一階:1

二階:2

三階:3

四階:5

五階:8

六階:13

…我也就推導到6,之後找了一下規律,

1+2=3

2+3=5

3+5=8

8+5=13

我就直接寫了下面這個程式

public int jumpfloor(int target) 

if(target==1)

if(target==2)

int first=1;

int last =2;

int sum = 0;

for(int i =3; i<=target;i++)

return sum;

}

現在回過頭來看看分析了一下

看網上總結的有很多,而且有很好的,有一段是這樣的,關於這個青蛙跳台階問題因為一次只能跳1或2,舉個例子,你跳到6階之前一階是不是5階或者4階,如果你跳到5階那下一跳肯定是跳1階,而如果是跳到4階那你下一跳就是2階(不要問為什麼不能從4階跳帶5階),這樣的話其實就是跳到4階的次數加上跳到5階的次數,即f(6)=f(5)+f(4)

如果還是按上面的那個思路,

一階:1

二階:2

三階:4

四階:8

五階:16

六階:32

…跳n階就和上面那個題不一樣,但是推導出來的還是有規律的

現在推導公式成了f(n)=f(n-1)*f(n-1)

如果你把這個公式再往下推導就變成了n-12相乘,

原理呢就是每個台階有兩種選擇,要不跳上,要不跨過,兩種選擇,而最後一階肯定是要跳上去的,所以就是n-1個2相乘,而不是n個2相乘

public int jumpfloorii(int target) 

if(target==1)

if(target==2)

int first=2;

int sum = 0;

for(int i =3; i<=target;i++)

return sum;

}

青蛙跳台階問題

題目 乙隻青蛙一次可以跳上 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 ...