变态跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
解题思路
f(1)=1
f(2)=2
f(3)=f(3-1)+f(3-2)+f(3-3)
……
f(n-1)=f(n-2)+f(n-3)……f(1)+f(0)
f(n)=f(n-1)+f(n-2)+f(n-3)……f(1)+f(0)
所以,f(n)=2*f(n-1)=2*2*f(n-2)……=2^n-1*f(1)=2^n-1
class Solution {
public:
//f(n)=2*f(n-1)=2^n-1
int jumpFloorII(int number) {
if(number<=2) return number;
return pow(2,number-1);
}
};