相关疑难解决方法(0)

JavaScript中递归和执行流程的更清晰的解释?

我正在阅读Eloquent JavaScript,我遇到了这个难题的例子:

考虑这个难题:从数字1开始并重复加5或乘以3,可以产生无限量的新数字.你会如何编写一个函数,给定一个数字,试图找到一个产生该数字的加法和乘法序列?

这是解决方案的代码:

function findSequence(goal) {
  function find(start, history) {
    if (start == goal)
      return history;
    else if (start > goal)
      return null;
    else
      return find(start + 5, "(" + history + " + 5)") ||
             find(start * 3, "(" + history + " * 3)");
  }
  return find(1, "1");
}

print(findSequence(24));
Run Code Online (Sandbox Code Playgroud)

如果没有参数start和goal的值,有人可以清楚dod find如何执行?递归是怎么发生的?

javascript recursion

5
推荐指数
1
解决办法
1809
查看次数

标签 统计

javascript ×1

recursion ×1