【发布时间】:2010-10-17 17:40:14
【问题描述】:
我在阅读 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));
如果 dod find 没有参数 start 和 goal 的值,有人可以澄清它是如何执行的吗?还有递归是怎么发生的?
【问题讨论】:
标签: javascript recursion