疯狂跳台阶
2018-11-02 本文已影响0人
小码弟
🐸一次可以选择跳1、2...n级台阶,问跳到n级台阶有多少种跳法
设F(n-i)表示第一次跳i(i<n)级台阶后有多少种跳法
第一次跳1阶,还有F(n-1)
第一次跳2阶,剩F(n-2)
...
第一次跳n阶,还剩F(1)
F(n) = F(n-1) + F(n-2) + ... +F(1)
同理
F(n-1) = F(n-2) + F(n-3) + ... + F(1)
立即推,F(n) = F(n-1) + F(n-) = 2*F(n-1);
int CrazyJumpFloor(int n)
{
if(n < 0) return -1;
if(n == 1 ) return 1;
else
return CrazyJumpFloor(n-1)*2;
}