因为一个数的阶乘只有是5或5的倍数乘以2的时候才会出现尾随零,并且从阶乘中可以看出来2的个数远大于5的个数,所以由此可以推得求一个数的尾随零数的个数只需看它能除以几个5就有几个零了。
图片说明
图片说明
图片说明
从算法二可以知道本质就是求可以整除5的个数,可以得到 图片说明
其中[N/5]表示不大于N中对5倍的贡献一个5,[N/5/5]表示不大于N的数中对5*5的倍数贡献一个5......
图片说明

import java.util.*;


public class Solution {
    /**
     * the number of 0
     * @param n long长整型 the number
     * @return long长整型
     */
    public long thenumberof0 (long n) {

        long sum = 0;
        int k = 5;

        while (n > 0) {
            sum += n / k;
            n = n / k;
        }

        return sum;
    }
}