疯狂跳台阶

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;
}
上一篇 下一篇

猜你喜欢

热点阅读