zoukankan      html  css  js  c++  java
  • 递归 斐波那契

    递归函数就是自己调用自己,必须要有结束条件。

    计算1-N之间的和

    function sum (n) {

      2,结束递归

      if(n ===1) {

        return  1

      }

      1, //把未知问题转已知问题

      return  sum(n-1)+n

    }

    sum(5);原理:层层递进,层层回归。如下

    //sum(5)==》sum(4) + 5

    //sum(4)==》sum(3) + 4

    //sum(3)==》sum(2) + 3

    //sum(2)==》sum(1) + 2

    //sum(1)==》1

    ----------------------------------------------------------------------------------------

    斐波那契(计算次数多,性能不佳)

    已知一对兔子每月可生一对小兔子,出生的小兔子三个月后,每个月可以生一对兔子。假设没有死亡的情况下一年能有多少兔子?

    function fib (n) {

      //第一个月和第二个月兔子的数量都是一对

      if(n ===1 || n ===2) {

        return 1

      }

      return fil(n-1) + fib(n-2)

    }

    fib(12)

    -------------------------------------------------------

    优化版

    //声明一个容器存储计算过的月份

    var cache = {}

    function fib (n) {

      //第一个月和第二个月兔子的数量都是一对

      if(n ===1 || n ===2) {

        return 1

      }

      if(cache[n]) {

        return cache[n]

      }else {

        //1,计算兔子数量

        var ret = fil(n-1) + fib(n-2)

        //2,用容器把变量存起来

        cache[n] = ret

        //3,把计算结果返回出去

        return ret;

      }

      return fil(n-1) + fib(n-2)

    }

    fib(100)

  • 相关阅读:
    第十一节 1虚拟路径 简单
    第十一节 4Server对象 简单
    第十节 19验证码案例 简单
    第十节 19爆力注册 简单
    第十节 23行删除例子讲解请求处理响应 简单
    第十节 18暴力破解及机器人注册原理 简单
    第十一节 2Request对象 简单
    礼物
    笔记本电脑与漂亮老婆
    一场傻B的晚会
  • 原文地址:https://www.cnblogs.com/xiaoxiao95/p/12979953.html
Copyright © 2011-2022 走看看