题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:
根据最后一次跳台阶的数目可以分为两种情况.最后一次跳1步台阶和最后一次跳2步台阶.
设跳n级台阶总共有f(n)种跳法.则有f(n)=f(n-1)+f(n-2); f(1)=1;f(2)=2;
class Solution {
public:
int jumpFloor(int number) {
//设跳上n级台阶有f(n)种跳法,则有 f(n-1) +f(n-2)
int f[1000];
f[1]=1;
f[2]=2;
for(int i=1;i<number-1;i++){
f[i+2]=f[i]+f[i+1];
}
return f[number];
}
};