題目描述:
一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
解題思路:
繼跳臺階之後,變態跳臺階隆重登場,還是上面的那種遞推,但是這次的遞推是f(n)=f(n-1)+f(n-2)+f(n-3)+…+f(1)+1;爲什麼加1呢,那是因爲前面的n-1項代表的是第一次跳i個臺階,會有多少種情況,而最後一項是一次性跳n個臺階,只有一種情況。
C++代碼:
class Solution {
public:
int jumpFloorII(int number) {
int sum=0;
if(number <= 0)
return 0;
else if(number==1||number==2)
return number;
else{
for(int i=1;i<number;i++)
{
sum+=jumpFloorII(number-i);
}
sum+=1;
return sum;
}
}
};