【发布时间】:2021-06-12 15:09:45
【问题描述】:
我试图解决在线书籍eloquentjavascript 2nd edition的递归练习:
问题是这样的:
我们已经看到 %(余数运算符)可以用来测试是否 一个数是偶数还是奇数,使用 % 2 检查它是否可以被整除 二。这是另一种定义(正数,整数)数的方法 是偶数还是奇数:
- 零是偶数。
- 一个是奇数。
- 对于任何其他数 N,其均匀度与 N - 2 相同。
定义一个递归函数isEven对应这个描述。 该函数应该接受一个数字参数并返回一个布尔值。
在 50 和 75 上测试它。看看它在 -1 上的表现。为什么?你能想 有办法解决这个问题吗?
这是我尝试过的并且有效:
function isEven(number) {
if (number == 0) {
return true;
} else {
return (-number % 2 == 0) ? true : false;
}
return isEven(number - 2);
}
console.log(isEven(-1));
但是,这似乎是一个错误的答案,因为据我了解,作者希望我使用 - 2 方法。我想知道这是否确实是正确的答案,或者如果它是错误的,有人可以指出我正确的方向。
【问题讨论】:
标签: javascript recursion