gpt4 book ai didi

javascript - 为什么我的方法获得欧拉数,返回无穷大?

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

我正在尝试使用 Javascript 获取欧拉数。

这是我的代码,返回无穷大:

function euler_number() {
for(var j = 0, e = 0; j < 10; j++) {
e += 1/(factorial(j));
}
return e;
}

function factorial(n) {
if(n <= 1) return n;
return factorial(n - 1) * n;
}

var r = euler_number();

console.log(r);

所以,我不明白为什么它会返回无穷大。

最佳答案

此代码返回无穷大,因为 j 的初始值为 0。特别是,您要将 1/factorial(0) 添加到 efactorial(0) 返回什么? JavaScript 将 1/0 计算为 Infinity,因此在第一次迭代之后,e 已经是 Infinity,并且任何后续迭代添加更多内容。

要解决此问题,只需从 1 开始 j。这应该可以解决问题!

编辑:Vasan 有一个很好的观点,那就是 0! (0 阶乘)actually evaluates to 1 .为了更好地解决问题,您应该重新评估您的 factorial 函数。

关于javascript - 为什么我的方法获得欧拉数,返回无穷大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50031663/

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