给定一个整数 n ,返回 n! 结果中尾随零的数量。
【leetcode 每日一题 2022/3/25 172. 阶乘后的零】提示 n! = n (n - 1) (n - 2) ... 3 2 1
//首先,一个数只有因子含有10才会有尾随0
//其次,10可以由2和5两个质数相乘得到
//之后,因为任何一个整数的阶乘包含因子2的个数都大于因子5的个数
//所以,最终只需要统计n!含有多少个因子5
//拿1000!举例,1~1000,其中含有1000/5,即200个5的倍数
//若这200个数都含有1个因子5,那直接返回200就好
//但是含有因子5的个数有不止一个的
//所以需要计算含有2个的,也就是能被25整除的
//以此类推再计算含有3个的,直到被除数大于n结束public int trailingZeroes(int n) {
int res = 0, tmp = 5;
while (tmp <= n) {
res += n / tmp;
tmp *= 5;
}
return res;
}