🗒️172. 阶乘后的零
2024-12-5
| 2024-12-5
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 5, 2024 01:40 AM
给定一个整数 n ,返回 n! 结果中尾随零的数量。
提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1

数学方法

我们将问题转换为求 n! 中质因子 2 的个数和质因子 5 的个数的较小值。

优化

质因子 5 的个数不会大于质因子 2 的个数,我们可以仅考虑质因子 5 的个数。

再次优化——秒哇~~~

有 n 个数相乘:
5 的因子一定是每隔 5 个数出现一次:
n! = 1 * 2 * 3 * 4 * (1 * 5) * ... * (2 * 5) * ... * (3 * 5) *... * n
每隔 25 个数字,出现的是两个 5,所以每隔 25 个数,还需要多算一个 5。
... * (1 * 5) * ... * (1 * 5 * 5) * ... * (2 * 5 * 5) * ... * (3 * 5 * 5) * ... * n
以此类推,也就是 ans = n / 5 + n/ 25 + n / 125 + n / 625 + ...

📎 参考

  • 【题单】数学算法
  • Important
  • 2427. 公因子的数目3326. 使数组非递减的最少除法操作次数
    Loading...