172. 阶乘后的零
描述
给定一个整数 n ,返回 n! 结果中尾随零的数量。
提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 1
分析
把阶乘的每个数分解,一个2和一个5可以凑成10,每两个个数就会有一个2,所以2的数量不缺,因此只要一个数含有5的质数因子,最终的阶乘就会产生0。题目可以理解为在1-N之间能拆分出多少个质数因子5。
class Solution {
public int trailingZeroes(int n) {
int ans = 0;
while(n != 0){
ans += n / 5;
n /= 5;
}
return ans;
}
}