约 728 字大约 2 分钟数学

Info
数据结构精品课 和 递归算法专题课 限时附赠网站会员,全新纸质书《labuladong 的算法笔记》 出版,签名版限时半价!
读完本文,你不仅学会了算法套路,还可以顺便解决如下题目:
LeetCode | 力扣 | 难度 |
---|---|---|
172. Factorial Trailing Zeroes | 172. 阶乘后的零 | 🟠 |
793. Preimage Size of Factorial Zeroes Function | 793. 阶乘函数后 K 个零 | 🔴 |
笔试题中经常看到阶乘相关的题目,今天说两个最常见的题目:
1、输入一个非负整数 n
,请你计算阶乘 n!
的结果末尾有几个 0。
这也是力扣第 172 题「阶乘后的零」,比如说输入 n = 5
,算法返回 1,因为 5! = 120
,末尾有一个 0。
函数签名如下:
int trailingZeroes(int n);
2、输入一个非负整数 K
,请你计算有多少个 n
,满足 n!
的结果末尾恰好有 K
个 0。
这也是力扣第 793 题「阶乘后 K 个零」,比如说输入 K = 1
,算法返回 5,因为 5!,6!,7!,8!,9!
这 5 个阶乘的结果最后只有一个 0,即有 5 个 n
满足条件。
函数签名如下:
int preimageSizeFZF(int K);
// 注意:cpp 代码由 chatGPT🤖 根据我的 java 代码翻译,旨在帮助不同背景的读者理解算法逻辑。
// 本代码不保证正确性,仅供参考。如有疑惑,可以参照我写的 java 代码对比查看。
int preimageSizeFZF(int K);
# 注意:python 代码由 chatGPT🤖 根据我的 java 代码翻译,旨在帮助不同背景的读者理解算法逻辑。
# 本代码不保证正确性,仅供参考。如有疑惑,可以参照我写的 java 代码对比查看。
def preimageSizeFZF(K: int) -> int:
// 注意:go 代码由 chatGPT🤖 根据我的 java 代码翻译,旨在帮助不同背景的读者理解算法逻辑。
// 本代码不保证正确性,仅供参考。如有疑惑,可以参照我写的 java 代码对比查看。
func preimageSizeFZF(K int) int {
}
// 注意:javascript 代码由 chatGPT🤖 根据我的 java 代码翻译,旨在帮助不同背景的读者理解算法逻辑。
// 本代码不保证正确性,仅供参考。如有疑惑,可以参照我写的 java 代码对比查看。
var preimageSizeFZF = function(K) {
我把这两个题放在一起,肯定是因为它们有共性,下面我们来逐一分析。
共同维护高质量学习环境,评论礼仪见这里,违者直接拉黑不解释