题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
这道题是跳台阶的进阶版,但大致思路是一样的.当青蛙跳n级台阶时,根据青蛙最后一次跳上的台阶数可以分为最后1次跳1级台阶,最后1次跳2级台阶,一直到最后1次跳n级台阶.则有f(n)=f(n-1)+f(n-2)+...+f(0),f(0)=1.
代码:
class Solution {
public:
int jumpFloorII(int number) {
if(number==0) return 0;
if(number==1) return 1;
int f[1000]={0};//置0很重要
f[0]=1;
for(int i=1;i<=number;i++){
for(int j = 0;j<i;j++){
f[i] += f[j];
}
}
return f[number] ;
}
};