leetcode 172. 阶乘后的零

题目

给定一个整数 n,返回 n! 结果尾数中零的数量。

 

解题思路

每个0都是由2 * 5得来的,相当于要求n!分解成质因子后2 * 5的数目,由于n中2的数目肯定是要大于5的数目,所以我们只需要求出n!中5的数目。

 

C++代码

class Solution {
public:
    int trailingZeroes(int n) {
        int res = 0;
        long long k = 5;
        while(k <= n)
        {
            res += n/k;
            k *= 5;
        }
        return res;
    }
};

 

posted @ 2019-08-26 15:34  xd_xumaomao  阅读(149)  评论(0编辑  收藏  举报