为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript:几何和的 BigInteger 实现

JavaScript:几何和的 BigInteger 实现

森林海 2022-11-03 10:01:06
假设我在这里有这个等式:a * (1 - r ^ n) / (1 - r)基本上,它是几何数列之和的公式。在我们的例子中,r是一个小数(浮点数)。我期望得到的数字大于最大安全整数,因此必须使用 BigInt。几何和是否有 BigInt 实现?提前致谢!这是我尝试过的:function geoSum(a, r, n) {   return BigInt(a * ((1 - r ** n) / (1 - n)));   }Infinity在它可以转换为 BigInt 之前,它已经变成了。提前致谢!
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您应该在应用操作BigInt 之前将每个参数转换为:


function geoSum(a, r, n) {

  const an = BigInt(a);

  const rn = BigInt(r);

  const nn = BigInt(n);


  return an * ((1n - rn ** nn) / (1n - nn));

}


const result = geoSum(150, 151, 152);


console.log(String(result));

console.log(Number(result));


查看完整回答
反对 回复 2022-11-03
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

我只是用BigInt.


function geoSum(a, r, n) {

  return BigInt(BigInt(a) * (BigInt(BigInt(1) - BigInt(BigInt(r) ** BigInt(n))) /

         BigInt(BigInt(1) - BigInt(n))));

}

geoSum(2,5,10)

回来:


2170138n

我不知道结果对你是否有意义。


查看完整回答
反对 回复 2022-11-03
  • 2 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号