zoukankan      html  css  js  c++  java
  • 另类递归

            var memoizer = function (memo, fundamental) {

                var shell = function (n) {

                    var result = memo[n];

                    if (typeof result !== 'number') {

                        result = fundamental(shell, n);

                        memo[n] = result;

                    }

     

                    return result;

                };

     

                return shell;

            };

            var fibonacci = memoizer([1, 1], function (shell, n) {

                return shell(n - 1) + shell(n - 2);

            });

            var factorial = memoizer([1, 1], function (shell, n) {

                return n * shell(n - 1);

            });

           

     

            function test(n) {

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

                    fibonacci(n);

                    factorial(n);

                }

            }

    说明: 当执行testn)时,该思路就能大幅提升性能!

  • 相关阅读:
    Mac国内源安装brew
    linux基础命令(二)
    运维查看命令
    初识数据库
    镜像/容器相关操作
    docker基本命令
    Docker简介及部署
    CF1599A Weights 构造
    CSP-S 2021 游记
    GeOP 1.0开发成!
  • 原文地址:https://www.cnblogs.com/Langzi127/p/2282568.html
Copyright © 2011-2022 走看看