题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路
f(0)=0
f(1)=1
要跳上number级,可以分为两种情况:
先跳1级再跳number-1级 或者 先跳number-1级再跳1级。
所以:f(number)=2*f(number-1)
那么:
f(2)=2
f(3)=4
f(4)=8
得出公式:
number=0,f(number)=0
number>0,f(number)=2^(number-1)
代码
class Solution {
public:
int jumpFloorII(int number) {
if(number==0)
return 1;
return (int)pow(2,number-1);
}
};