Leetcode刷题java之172. 阶乘后的零(一天一道编程题之第十九天)

执行结果:

通过

显示详情

执行用时 :1 ms, 在所有 Java 提交中击败了99.85% 的用户

内存消耗 :36.9 MB, 在所有 Java 提交中击败了5.50%的用户

题目:

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

示例 1:

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

示例 2:

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

计算因子5的个数。

代码:

class Solution {
    public int trailingZeroes(int n) {
        int count=0;
        //计算因子中5的个数。2因子的数目太多了,所以计算5的就好
        //每隔5个出现一个,每隔25(5*5)出现一个,每隔125(5*5*5)出现一个
        //以此类推
        while(n>0)
        {
            n/=5;
            count+=n;
        }
        return count;
    }
}