问题:青蛙每次可以跳1–n个台阶,跳上n个台阶有多少中跳法;
分析:同样从后往前分析,跳上第n个台阶有n-1中可能。从第一个台阶直接跳上第n个台阶…从第n-1个台阶跳上第n个台阶,一共有:
f(n)=f(n-1)+f(n-2)+f(n-3)+…f(1);
f(n-1)=f(n-2)+f(n-3)+…f(1);
…
…
f(n)=2f(n-1)=4f(n-2)=8f(n-3)=…=(2^(n-1))f(1);
f(n)=2f(n-1);
f(1)=1;
class Solution {
public:
int jumpFloorII(int number) {
if(number == 1)
return 1;
return 2 * jumpFloorII(number - 1);
}
};