gpt4 book ai didi

javascript - 使用数字的数字作为数组

转载 作者:行者123 更新时间:2023-11-30 10:44:37 25 4
gpt4 key购买 nike

var number = 342345820139586830203845861938475676
var output = []

var sum = 0;
while (number) {
output.push(number % 10);
number = Math.floor(number/10);
}

output = output.reverse();


function addTerms () {
for (i = 0; i < output.length; i=i+2) {
var term = Math.pow(output[i], output[i+1]);
sum += term;

}
return sum;
}

document.write(output);
document.write("<br>");
document.write(addTerms());

我正在尝试获取那个大数字并将其拆分为数字。然后,求第一个数的第二次方、第三个数的第四次方、第五个数的第六次方的和,以此类推。出于某种原因,我的数组返回奇怪的数字,导致我的总和被关闭。正确答案是 2517052。谢谢

最佳答案

您在 JavaScript 中遇到了精度问题。在开始做任何事情之前,只需评估 number 的当前值,结果可能会让您大吃一惊:

>>> var number = 342345820139586830203845861938475676; number;
3.423458201395868e+35

另请参阅:What is JavaScript's highest integer value that a Number can go to without losing precision?

为了解决您的问题,我会将您输入的数字存储为一个数组(甚至可能是一个字符串),然后从中提取数字。

这将解决您的计算,预期结果为 2517052:

var number = "342345820139586830203845861938475676";

var sum = 0;
for(var i=0; i<number.length; i=i+2){
sum += Math.pow(number.charAt(i), number.charAt(i+1));
}

sum;

关于javascript - 使用数字的数字作为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139953/

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