题目描述:
一只青蛙一次可以跳上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;
}
}
};