LeetCode 172. 阶乘后的零 Factorial Trailing Zeroes

【题目描述】
给定一个整数 n,返回 n! 结果尾数中零的数量。
【示例1】

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

【示例2】

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

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

【思路】
1、要想末尾为0,必须25 ,45也可写成225
2、说确切点 就是求0-n中5的个数
3、例 n=25,5 10 15 20 25=5*5,共6个5

代码实现:

func trailingZeroes(_ n: Int) -> Int {
    var tmpN = n
    var res = 0
    while tmpN >= 5 {
        res+=tmpN/5
        tmpN/=5
    }
    return res
}

你可能感兴趣的:(LeetCode 172. 阶乘后的零 Factorial Trailing Zeroes)