两种不同的方式实现斐波那契数列

1、for循环方式实现

      function feibo(n) {
        if (n == 0 || n == 1) {
            return 1
        }
        let a = 0
        let b = 1
        let c = a + b
        for (let i = 2; i <= n; i++) {
            c = a + b
            a = b
            b = c
        }
        return c
    }

2、用递归加map对象实现最优

      var map = new Map()
    function feibo(n) {
        if (map.has(n)) {
            return map.get(n)
        }
        if (n == 1 || n == 2) {
            return 1
        }
        map.set(n, feibo(n - 1) + feibo(n - 2))
        return feibo(n - 1) + feibo(n - 2)
    }
posted @ 2020-11-11 21:58  yuanhonglin  阅读(159)  评论(0)    收藏  举报