172. 阶乘后的零

阶乘后的零

题目描述:

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

提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 1

示例 1:

输入:n = 3
输出:0
解释:3! = 6 ,不含尾随 0
示例 2:

输入:n = 5
输出:1
解释:5! = 120 ,有一个尾随 0
示例 3:

输入:n = 0
输出:0

提示:

0 <= n <= 104

进阶:你可以设计并实现对数时间复杂度的算法来解决此问题吗?

思路:

时间复杂度:O(n),空间复杂度O(1)

有5的地方就有0,如果是25是5*5说明有两个5可以cnt++两次

代码:

func trailingZeroes(n int) int {
    cnt := 0
    for i:=5;i<=n;i+=5{
        for j:=i;j%5 == 0;j/=5 {
            cnt++
        }
        
    }
    return cnt
}

代码效率:

执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
内存消耗:1.9 MB, 在所有 Go 提交中击败了29.18%