题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:和上一个太台阶的思路类似。
那么可以得出:
当跳第n-1级台阶时,
f(n-1)=f(n-2)+f(n-3)+…+f(1)+1;
当跳第n级台阶时,
f(n)=f(n-1)+f(n-2)+f(n-3)+…+f(1)+1;
上面两个等式相减可以得出:f(n)=2*f(n-1);
所以我们可以得出:
当n=0时,f(n)=0;
当n>0时,f(n)=pow(2,n-1);
class Solution {
public:
int jumpFloorII(int number) {
if(number==0) return 0;
return pow(2,number-1);
}
};