讲两道常考的阶乘算法题
原创约 1775 字
本文讲解的例题
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);
我把这两个题放在一起,肯定是因为它们有共性,下面我们来逐一分析。