学习递归

49 阅读1分钟

递归函数

  • 递归函数

    •      在函数内部, 调用自身, 此时就是写了一递归, 但 它是死递归

    •      要想写一个正确的递归函数, 需要在递归内部, 写上 返回点(到某个条件时, 停止递归)

            function fn(n) {
                // 1. 先写折返点, 到某个条件停止递归
                if (n == 1) return 1
                // 2. 不符合结束递归时的代码
                return n * fn(n - 1)
        }
      
        // function fn() {  // 死循环版本
        //     fn()
        // }
        // fn()

斐波那契数列

  • 有一个数列
    •  第一位和第二位 固定为 1
    •  从第三位开始, 每个位置的数字, 是前两位的和
    •  1  1  2  3  5  8  13   21   34
        function fn(n) {
            if (n == 1 || n == 2) {
                return 1
            }
            return fn(n - 1) + fn(n - 2)
        }
        var sum = fn(10)
        console.log(sum);