172. 阶乘后的零
给定一个整数 n ,返回 n! 结果中尾随零的数量。
提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
示例 1:
输入:n = 3
输出:0
解释:3! = 6 ,不含尾随 0
示例 2:
输入:n = 5
输出:1
解释:5! = 120 ,有一个尾随 0
示例 3:
输入:n = 0
输出:0
提示:
0 <= n <= 104
思路:
就看 n! 中 有多少个 因数5 就行了,因为10会拆成2*5,2由所有偶数拆出,所以数量会远远大于5。因此我们只需考虑 5 就行了
以 125!为例 5 10 15 20 25 .........125 中,每个5的倍数中有一个 5 25 50 75 100 125 中,每个 5*5 = 25 的倍数中有2个 5 125 中,5*5*5 = 125有3个5
所以我们可以发现规律,125/5 + 125/(5*5) + 125/(5*5*5) = 25+5+1=31
上代码!!!
var trailingZeroes = function(n) {
let res = 0
for(let d = Math.floor(n/5);d>0;d=Math.floor(d/5)){
res = res + d
}
return res
}
然后这道题就AC了~