题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解法
如一共有10个台阶,所有的跳法为jumpFloor(10)
第一步若跳1个台阶,那么剩下9个的跳法为jumpFloor(9)
第一步若跳2个台阶,那么剩下8个的跳法为jumpFloor(8)
所以jumpFloor(10)=jumpFloor(9)+jumpFloor(8)
本质上就是一个斐波那契数列,可参考上一篇斐波那契的解法。这里给出递归的解法:
代码:
class Solution {
public:
int jumpFloor(int number)
{
if(number==0)
return 1;
if(number==1)
return 1;
else
return jumpFloor(number-1)+jumpFloor(number-2);
}
};