青蛙跳臺階
題目:
一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。
分析:
一個臺階,即f(1):只有一種跳法(1)
兩個臺階,即f(2):有兩種跳法(1,1)、(2)
三個臺階,即f(3):有兩種情況,最後一次跳一個臺階、最後一次跳兩個臺階。
故,f(3) = 最後一次跳一個臺階的所有情況 + 最後一次跳兩個臺階的所有情況。
最後一次跳一個臺階,則之前已經跳了兩個臺階,所有情況:f(2)
最後一次跳兩個臺階,則之前已經跳了一個臺階,所有情況:f(1)
故,f(3) = f(1) + f(2)
4個臺階,即f(4):也有兩種情況,最後一次跳一個臺階、最後一次跳兩個臺階。
故,f(4) = 最後一次跳一個臺階的所有情況 + 最後一次跳兩個臺階的所有情況。
最後一次跳1個臺階,則之前已經跳了三個臺階,所有情況:f(3)
最後一次跳2個臺階,則之前已經跳了兩個臺階,所有情況:f(2)
故,f(4) = f(2) + f(3)
public class Solution {
public int JumpFloor(int target) {
if(target==1)
return 1;
if(target == 2)
return 2;
return JumpFloor(target-2)+JumpFloor(target-1);
}
}
變態跳臺階
題目:
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
分析: