LeetCode 172. 阶乘后的零

题目描述

172. 阶乘后的零

思路分析

解法一:统计 5 的个数(推荐)

核心思路

  • 阶乘末尾 0 的数量由因子 10 决定,等价于 2 和 5 的配对数量。
  • 2 的个数远多于 5,因此统计 5 的数量即可。
  • 依次累加 n/5 + n/25 + n/125 ...


复杂度分析

  • 时间复杂度:O(log n),其中 n 表示输入数值。
  • 空间复杂度:O(1)。
// 统计 5 的个数
class Solution {
    public int trailingZeroes(int n) {
        int res = 0;
        while (n > 0) {
            n /= 5;
            res += n;
        }
        return res;
    }
}
// 统计 5 的个数
func trailingZeroes(n int) int {
	res := 0
	for n > 0 {
		n /= 5
		res += n
	}
	return res
}

相似题目

题目 难度 考察点
50. Pow(x, n) 中等 数学
231. 2 的幂 简单 数学
326. 3 的幂 简单 数学
342. 4 的幂 简单 数学
628. 三个数的最大乘积 简单 数学
204. 计数质数 中等 数学
本文作者:
本文链接: https://hgnulb.github.io/blog/2025/72215839
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!