gpt4 book ai didi

javascript - 欧几里德 GCF 的实现结果为 "Range Error: Maximum call stack size exceeded."

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:33 24 4
gpt4 key购买 nike

我正在努力了解三元运算符,所以我想我会举一个我最近遇到并喜欢的例子,并尝试将其重构为更基本(尽管冗长)的表示法。然而,我的实现抛出了一个错误,而我试图重建的三元版本工作得很好。

用于计算两个数的 GCF 的欧几里德算法的三元版本:

  function gcd(a, b) {
return !b ? a : gcd(b, a % b);
}

我尝试实现它

    function gcf2(a, b) {
if(b !== a){
gcf2(b, a % b);
}
else {
g = b;
}
}

我已经阅读了三元运算符的 MDN 描述,但很明显我还没有从结果中理解它。

最佳答案

将三元转换为 if else 语句的方法是这样的:

function gcd2(a, b) {
if (!b) {
return a;
}
else {
return gcd2(b, a % b);
}
}

三元基本上是说“如果 b 是假的,返回 a。否则返回 gcd(b, a % b)”

关于javascript - 欧几里德 GCF 的实现结果为 "Range Error: Maximum call stack size exceeded.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41071683/

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