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%
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!