【问题标题】:javascript recursion rewriting with iterative array stack [closed]javascript递归重写与迭代数组堆栈[关闭]
【发布时间】:2016-03-19 14:02:21
【问题描述】:

需要一个用于将递归 javascript 函数重写为迭代数组堆栈的模板。希望这种方法比标准递归更快,并且会使用更少的内存。我使用对象引用作为参数。我的函数是 negascout,但我很想对更小更优雅的 Fibonacci_sequence 进行逆向工程。

一个更简单的例子是重写 Fibonacci_sequence。

来自rosettacode 斐波那契序列

function fibonacci(n) {
   if (n < 2){
     return 1;
   }else{
     return fibonacci(n-2) + fibonacci(n-1);
   }
}

console.log(fibonacci(7));
//Returns 21

【问题讨论】:

    标签: javascript arrays recursion fibonacci


    【解决方案1】:

    一种迭代方式可以是:

    function iterativeFibonacci(n){
      if (n < 2){
         return 1;
      }
    
      var i;
      var fibs = new Array();
      fibs.push(0);
      fibs.push(1);
      for(i=0; i<=n; i++){
        fibs.push(fibs[0] + fibs[1]);
        fibs.shift();
      }
      return fibs[0];
    }
    
    document.write(iterativeFibonacci(7));

    【讨论】:

      猜你喜欢
      • 2021-11-17
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      • 2017-09-06
      • 2017-03-12
      • 2020-01-22
      • 2015-08-25
      • 2023-03-19
      相关资源
      最近更新 更多