斐波那契数列

2021-05-17  本文已影响0人  my木子

斐波那契数列:1 1 2 3 5 8 13...这样一个数列就是斐波那契数列

      // 1. 递归
        function fibonacci(n) {
            if (n - 2 >= 0) {
                return fibonacci(n - 2) + fibonacci(n - 1);
            } else {
                return 1;
            }
        }
        console.log(fibonacci(5));

       // 2.
        function fibonacci(n) {
            if (n <= 1) return 1;
            let arr = [1, 1]; // 默认前两项值
            let i = n - 1; // 除前两位还要创建的值
            while (i > 0) {
                let len = arr.length;
                let a = arr[len - 1];
                let b = arr[len - 2];
                arr.push(a + b); // 最后两项值相加
                i--;
            };
            return arr[n];
        };
        console.log(fibonacci(5));

      // 3.
      function fibonacci(count) {
            function fun(count, curr = 1, next = 1) {
                // console.log(count, curr, next);
                if (count === 0) {
                    return curr;
                } else {
                    return fun(count - 1, next, curr + next);
                };
            };
            return fun(count);
        };
        console.log(fibonacci(5));
上一篇下一篇

猜你喜欢

热点阅读