【发布时间】:2020-08-24 05:51:54
【问题描述】:
下面的函数返回 num1 / num2 之间 2 的倍数。 因此,如果 num 1 = 8, num 2 = 12,它将返回 3,因为它是等于 8、10、12 的倍数。 您将如何仅使用递归来复制此函数?
function makeMultiplesOfDigit(num1, num2) {
let count = 0;
let start = num1;
let end = num2;
if (num1 > num2) {
start = num2;
end = num1;
}
if (start === 0) {
start = 1;
}
for (let i = start; i <= end; i++) {
if (i % 2 === 0) {
count += 1;
}
}
return count;
}
【问题讨论】:
-
为什么是
if (start === 0)?书上说0是偶数,所以应该算一。更重要的是,如果num1是负数,num2是正数,那么0 将算作偶数之一。所以这是没有意义的。 -
抱歉回复晚了。这是一个最初为刚开始学习编码的初学者编写的问题。我猜他们(训练营)试图通过给 0 例外来使其更容易。现在从我第一次看到这个问题已经过去了大约 3 周,我正在尝试应用我从递归中学到的东西,以便我可以练习。顺便说一句,我非常感谢您的清晰解释。非常感谢。
-
请注意,问题中的函数名称与它应该做的完全不匹配。也许像
countEvens?
标签: javascript recursion