5! = 120, 末尾有一个0.
6! = 720, 末尾有一个0.
10! =3628800, 末尾有两个0.
//阶乘函数
function factorial(n) {
let result = 1;
while( n > 1) {
result = result * n;
n--;
}
return result;
}
var result = factorial(100);
console.log(result); //9.332621544394418e+157
//计算阶乘结果后面有几个0
var index = 0;
if(result % 10 == 0) {
while(result % 10 == 0) {
result = result / 10;
index++;
}
} else {
console.log('No zero in the end!');
}
console.log(index);
这个代码哪里不对? 100的阶乘末尾的零是有24位的。这个程序算不出来正确结果。如果是因为数字太大计算不出来的话,原理是什么?
MM们
相关分类