2 * 5 = 10,才会在末尾贡献 0
所以阶乘中的尾数零的数量取决于2和5的数量
而阶乘中因子 5 的数量一定小于因子 2 的数量
所以答案应该是n/5,但此答案少了一种情况
比如n=25时,25/5=5,但是25的阶乘尾数0的数量是6。
少算的一种便是25=5x5,中的5。
那么这个5如何得到呢?
从25/5的结果中得到,结果是5,继续/5,还可以得到一个。
综上附上代码
class Solution {
public int trailingZeroes(int n) {
int count = 0;
while (n > 0){
count += n / 5;
n /= 5;
}
return count;
}
}