zoukankan      html  css  js  c++  java
  • 递归

    递归:

    1:在函数内部调用自己

    2:必须有一个明确的条件判断递归的结束,就是递归的出口

    以下是一些简单的小例子:(阶乘,斐波那契数列)

    (这里可以用到一个小的知识点,arguments)

    eg://首先,要先找出阶乘或者斐波那契数列的规律,如何再结束条件

    //阶乘的规律:以5为例,5!=5*4*3*2*1

    普通的写法

    function fun(n){

       var num=1;

      for(var i=1;i<=n;i++){

      num*=i

      }

    }

    递归:

      function  fun(){      

        if(n==1||n==0){    //一直乘到1,所以当n-1=0或者n0的时候就输出1

        return 1;

        }

        return n*arguments.callee(n-1)    //arguments是一个类数组,有length属性,还有callee,arguments.callee  

       }

    同理,斐波那契数列也可以这样    //1 1  2  3  5  8  13  21  34

    <script>

      function fun(n){

        if(n==1||n==2){    //当n-2=0或者n-1=0时,输出1,因为是从1开始的,第一个数和第二个数相加得到第三个数,第二个数和第三个数相加得到第四个数

      return 1;

      }

      return fun(n-1)+fun(n-2)

    }

    console.log(fun(9))

  • 相关阅读:
    react学习笔记一
    获取客户端时间差
    ts
    Linux学习笔记
    vuex 基本使用
    SQL入门
    ios 中倒计时计算,时间戳为NaN
    git归纳总结
    JS原型对象
    vue笔记
  • 原文地址:https://www.cnblogs.com/3542446186qq/p/10139787.html
Copyright © 2011-2022 走看看