[英]Find the sum of the digits in the number 100! in javascript
我得到的答案是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(不要忘了累加!),直到完成所有数字为止:
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
Cri 10至157。查找js可以显示的最大整数。 小得多! 因此,如果这是编程任务,则必须变得更加微妙。
接下来,如果您获得全部158位数字,并且想要使用策略添加它们,则可能需要将获得的字符串(毕竟,子字符串是字符串)转换为Number。
但是,实际上,问题是,您可以确定数字的总和而不计算数字吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.