zoukankan      html  css  js  c++  java
  • 剑指Offer:跳台阶

    一.题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
     

    二.解答

    f(n) = 0 (n = 0)

             1 (n = 1)

             2 (n = 2)

             f(n - 1) + f(n - 2)

    三.代码

    1.递归

    int jump(int n)
    {
      if (n == 0)
        return 0;
      if (n == 1)
        return 1;
      if (n == 2)
        return 2;
      return jump(n - 1) + jump(n - 2); 
    }

    2.非递归

    int jumpFloor(int number){

            int former1 = 1;
            int former2 = 2;
            int target = 0;

            if (number == 0)
                return 0;
            if (number == 1)
                return 1;
            if (number == 2)
            {
                return 2;

            }else{
                for (int i = 3; i <= number; i++)
                {
                    target = former1 + former2;
                    former1 = former2;
                    former2 = target;
                }
            }

            printf("%d", target);
            return target;
      }

    恭喜你通过本题

    运行时间:617ms

    占用内存:504k

  • 相关阅读:
    msp430项目编程57
    msp430项目编程56
    msp430项目编程55
    msp430项目编程54
    msp430项目编程53
    msp430项目编程52
    msp430项目编程51
    msp430项目编程50
    msp430项目编程47
    msp430项目编程46
  • 原文地址:https://www.cnblogs.com/k5bg/p/11207512.html
Copyright © 2011-2022 走看看