gpt4 book ai didi

javascript - JavaScript 中的欧拉项目 16 (2^1000)

转载 作者:行者123 更新时间:2023-12-02 17:37:47 25 4
gpt4 key购买 nike

我已经用 JavaScript 编写了我认为应该是 Project Euler 16 的可行解决方案,并且它对 2 的小幂进行了良好的测试 - 但对于 2^n(其中 n = 1000)得出了错误的结果。这是我的代码:

function problem16(n) {

var prod = Math.pow(2, n);
console.log ("Prod: "+ prod);
var sum = 0;

while (prod >=1) {
console.log ("Sum term: " + prod%10);

sum += prod%10;
console.log ("Sum: "+ sum);

prod = Math.floor(prod / 10);
console.log ("Prod: "+ prod);
console.log ("------------");
}
return sum;

}

console.log("Sum is: " + problem16(1000));

非常感谢任何帮助。

最佳答案

JavaScript 数字是 64 位浮点值。 (参见 the spec 。)它们的精度有限,因此一旦超过某个值,就无法准确表示所有整数。我相当确定并非所有 21000/10n 形式的数字都可以准确表示。您将必须找到另一种(更聪明的)方法来实现 Project Euler 16。(您不应该对此感到惊讶。Project Euler 问题并不是为了简单地锻炼基本的编程技能。)

关于javascript - JavaScript 中的欧拉项目 16 (2^1000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22469849/

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