跳台阶

作者: 小码弟 | 来源:发表于2018-10-23 09:59 被阅读0次

    问题描述:🐸一次可以跳1级台阶,也可以跳2级台阶,问🐸跳上n级台阶有多少种跳法。

    寻找递推关系:
    1.如果第一次跳1阶,那剩下的可能跳法有F(n-1)种。

    1. 如果第一次跳2阶,剩下F(n-2)种跳法。
    2. 由(1)、(2)推知,F(n) = F(n-1) + F(n-2),其中F(1) = 1, F(2) = 2

    迭代版

    int jumpFloor(int n)
    {
      if(n<1)
        return 0;
      if(n==1 || n==2)
        return n;
      int f1 = 1;
      int f2 = 2;
      int count = 3;
      int res = 0;
      while(count<=n)
      {
        res = f1+f2;
        f1 = f2;
        f2 = res;
      }
      return res;
    }
    

    递归版

    int jumpFloor(int n)
    {
      if(n == 1 || n == 2)
          return n;
      else
          return jumpFloor(n-1) + jumpFloor(n-2);
    }
    

    相关文章

      网友评论

          本文标题:跳台阶

          本文链接:https://www.haomeiwen.com/subject/vrzwzftx.html