【发布时间】:2021-04-08 16:43:31
【问题描述】:
所以在 Eloquent JavaScript 的第 3 章中有一个递归示例,它是这样的:考虑这个难题:从数字 1 开始,反复加 5 或乘以 3,一个无限的集合 可以产生数字。你将如何编写一个函数,给定一个数字,试图找到一系列这样的加法和 产生那个数字的乘法?
给定的代码是..
function findSolution(target) {
function find(current, history) {
if (current == target) {
return history;
} else if (current > target) {
return null;
} else {
return find(current + 5, `(${history} + 5)`) ||
find(current * 3, `(${history} * 3)`);
}
}
return find(1, "1");
}
现在有几件事我不明白。就像我们第一次调用函数一样,它会返回什么?它会返回 (1, "1") 并忽略内部函数 find? p>
示例中的 current 和 history 是什么?我不记得给他们赋值了吗?
【问题讨论】:
标签: javascript function recursion multiplication addition