gpt4 book ai didi

javascript - JS 中的 GCD - 超出最大调用堆栈

转载 作者:行者123 更新时间:2023-11-28 06:37:03 24 4
gpt4 key购买 nike

这是我编写的用于计算 GCD 的递归代码:

function gcd(n1, n2) {
if(n1<n2) {
return gcd(n1, n2-n1);
}
else if(n2<n1) {
return gcd(n1-n2,n2);
}
else{
return n1;
}
}
console.log(gcd(process.argv[2], process.argv[3]));

它给了我一个范围错误。知道为什么吗? :(

编辑:

我删除了标准输入并用随机数替换它,它工作得很好。

我想知道为什么它第一次不起作用......

最佳答案

试试这个:

function gcd(n1, n2) {
if(n1<n2) {
return gcd(n1, n2-n1);
}
else if(n2<n1) {
return gcd(n1-n2,n2);
}
else{
return n1;
}
}
console.log(gcd(parseInt(process.argv[2]), parseInt(process.argv[3])));

我认为 JavaScript 的类型强制导致了一个陷阱。使用原始版本,我可以让它出现调用堆栈溢出错误,如下所示:

node gcd.js 3 11

关于javascript - JS 中的 GCD - 超出最大调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34187568/

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