class Solution {
public:
int jumpFloorII(int number) {
if(number <= 0)
return 0;
if(number == 1)
return 1;
int sum = 1;
for(int i = 2; i <= number; i++){
sum = 2*sum;
}
return sum;
}
};
代码很简单,这道题目我们可以通过数学推导解决。
根据题目,一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。
那么我们可以认为,如果一只青蛙在n阶上,它可能从n-1阶跳一步上来,也可能从n-2阶跳两步上来,n-3阶跳三步上来,一直到0阶跳n步上来。因此可以得到下列公式。
这就是一个青蛙跳上n阶,可能有的所有跳法。
同理可得,一个青蛙跳上n-1阶,可能有的所有跳法:
所以,