尾随零的数量实际上取决于阶乘中因子 2 和因子 5 的配对数量。由于每一对 2 和 5 会产生一个尾随零,我们只需计算阶乘中因子 2 和因子 5 的数量,并取它们的较小值即可。
function trailingZeros(n) {
let count = 0;
// 计算因子 5 的数量
while (n >= 5) {
n = Math.floor(n / 5);
count += n;
}
return count;
}
// 示例
const n = 10;
const zerosCount = trailingZeros(n);
console.log(zerosCount); // 输出 2,因为 10! 末尾有两个零