gpt4 book ai didi

JavaScript:太多的递归?

转载 作者:行者123 更新时间:2023-11-30 09:34:32 24 4
gpt4 key购买 nike

我正在通过 Eloquent JavaScript 学习 JavaScript,其中一个练习是编写一个递归函数 isEven,如果数字为偶数则返回 true,如果数字为偶数则返回 false数是奇数。

如果我没理解错的话,作者特别希望实现以下内容:

  1. 如果一个数 == 0,那么它是偶数。
  2. 如果一个数 == 1,那么它是奇数。
  3. “对于任意数N,其均匀度与N-2相同”。

但是当我使用下面的代码时,我得到一个错误:InternalError: too much recursion (line 3 in function isEven) … 如何在仍然使用递归函数的同时解决这个问题?

// Your code here.
function isEven(n){
if(n==0){
return true;
}
else if(n==1){
return false;
}
else{
n = n-2;
isEven(n);
}
}

console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → ??

最佳答案

您可以在递减/递增值之前添加另一项检查。

function isEven(n) {
if (n == 0) {
return true;
}
if (n == 1) {
return false;
}
if (n > 0) {
n = n - 2;
} else {
n = n + 2;
}
return isEven(n);
}

console.log(isEven(50));
console.log(isEven(75));
console.log(isEven(-1));

关于JavaScript:太多的递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44383757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com