Factorial Trailing Zeroes

题目的意思是求n!末尾有多少个0.

只有2*5=10,才会出现0,计算n以内有出现了多少个5。

分解因子, 当且仅当 因子中出现 一对 (2,5)时, 最后结果会增加一个 trailing zero.

1.  2的个数永远多于5个个数.

2.  计算5的个数时, 最简单的方法是 SUM(N/5^1,  N/5^2, N/5^3...)

int trailingZeroes(int n) {
        int ret = 0;
        while(n){
            n = n/5;
            ret += n;
        }
        return ret;
    }

你可能感兴趣的:(Factorial Trailing Zeroes)