阶乘后的零

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

示例 1:

输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。

示例 2:

输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.

说明: 你算法的时间复杂度应为 O(log n) 

 

这条题一开始的思路是求2和5的个数。。。。

后来发现只要求5的个数就行了。。。

但是慢慢加5的话会TLE。。。

所以就有了下面的方法。。。

一个数除5得到的结果就是该数里5的个数,然后再循环,就能得到后面的5的个数(也就是原数里的25的另一个5的个数)。。。如此循环,得到5的总数。

int trailingZeroes(int n) {
    int count=0;
    while(n)
    {
        n/=5;
        count+=n;
    }
    return count;
}
posted @ 2018-07-26 14:41  onlyandonly  阅读(153)  评论(0编辑  收藏  举报