# 172. 阶乘后的零
# 题目
给定一个整数 n
,返回 n!
结果尾数中零的数量。
# 题解
# 计算因子
2*5
得到一个零,2 的个数多于 5,所以计算 5 的个数即可
n! = n * (n-1) * (n-2) * ... * 1
每隔 5 个出现一个 5 每隔 25 个出现两个 5 。。。
所以 5 出现的个数就是 n/5 + n/25 + ...
=> n/5 + (n/5/5) + ...
/**
* @param {number} n
* @return {number}
*/
var trailingZeroes = function(n) {
let res = 0;
while (n) {
n = ~~(n / 5);
res += n;
}
return res;
};
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12