找到数字100中的数字总和!在javascript中

时间:2016-10-05 06:26:05

标签: 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);

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

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

接下来,如果您获得所有158位数字,并且想要使用您的策略添加它们,您可能需要将您获得的字符串(子字符串毕竟是一个字符串)转换为数字。

但实际上,问题是,你可以确定数字的总和而不用计算数字吗?