计算出n阶乘中尾部零的个数

和大家一样一开始也是选了最简单但也是最慢的方法,所以必然超时。
看了题解才发现有数学规律的:
通过观察可以发现一个数的阶乘的0 = 5的倍数的个数+25的倍数的个数+.......以此类推(5的倍数)的倍数的个数

class Solution {
    /*
     * param n: As desciption
     * return: An integer, denote the number of trailing zeros in n!
     */
    public long trailingZeros(long n) {
        long sum = 0;
        while (n != 0) {
            sum += n / 5;
            n /= 5;
        }
        return sum;
    }
};



你可能感兴趣的:(智商不足~)