给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。
显然不能用阶乘后再统计的方法
公式 Z=[N/5] + [N/5^2]+ ...该公式的[N/5]含义是在不大于N的阶乘中包含一个5的个数,就比如35里面,包含一个5的个数为5,10,15,20,..35 即 35/5=7个(里面有7个元素包含一个5),那当我们遇到类似于元素为25时,里面有5*5时,即里面有两个5,所以就用[N/5^2]算出包含两个5时的个数。类似这样的运算,当5^k>N时,停止。
class Solution {
public int trailingZeroes(int n) {
int res = 0;
while(n!=0){
n /= 5;
res += n;
}
return res;
}
}