找出数字100中数字的和!在javascript中

Find the sum of the digits in the number 100! in javascript

本文关键字:数字 javascript      更新时间:2023-09-26

我得到的答案是659,但那个是错误的答案,请检查一下。这是我的代码

var fact=1;
for(var i=1;i<=100;i++){
fact  = fact*i;
}
var sum = 0;
while (fact > 0) {
sum += fact % 10;
fact = Math.floor(fact / 10);
}
console.log(sum);

length的定义中存在语法错误-var关键字应该在它之前,而不是在它之后,在计算sum时也存在类似问题。

无论如何,我认为将数字转换为字符串是一种很难的方法。你可以使用%运算符来获得最后一个数字,并将数字除以10(不要忘记floor!(,直到你完成所有数字:

var sum = 0;
while (fact > 0) {
    sum += fact % 10;
    fact = Math.floor(fact / 10);
}

酷。您已经编写了一段非常明智的代码。但有几件事需要考虑。一个是100的巨大尺寸!。如果你去控制台输入一些代码,你会看到:

> fact=1
1
> for(i=1;i<=100;i++){fact *= i;}
9.33262154439441e+157

Crikey。10到157。查找js可以显示的最大整数。它小得多!所以,如果这是一个编程任务,你必须更加微妙。

接下来,如果你得到了这个数字,全部是158位,并且你想用你的策略添加它们,你可能需要把你得到的字符串(毕竟子字符串是一个字符串(转换成一个数字。

但实际上,问题是,你能在不计算数字的情况下确定数字的总和吗?