172. 阶乘后的零
- 题号:172
- 来源:LeetCode
- 难度:中等
- 标签:
数学 - 语言:TypeScript
- 解法:2 个
- 作者:lmliheng
- 最近更新:2026-09-27
解法一
TypeScript · O(n) 时间 · O(1) 空间 · 更新于 2026-09-27
直接算阶乘再数末尾 0,大数会失真
typescript
/**
* @difficulty medium
* @tags 数学
* @time O(n)
* @space O(1)
* @note 直接算阶乘再数末尾 0,大数会失真
* @172. 阶乘后的零
*/
let n = 30
let sum = 1
for (let i = 1; i <= n; i++) {
sum *= i
}
console.log(sum)
let ZeroNum = 0
let sum_str = sum.toString()
for (let i = sum_str.length - 1; i >= 0; i--) {
if (sum_str[i] === '0') {
ZeroNum++
} else {
break
}
}
console.log(ZeroNum)解法二 · TypeScript
TypeScript · O(log n) 时间 · O(1) 空间 · 更新于 2026-09-27
累加 n/5、n/25…,统计因子 5 的个数
typescript
/**
* @difficulty medium
* @tags 数学
* @time O(log n)
* @space O(1)
* @note 累加 n/5、n/25…,统计因子 5 的个数
* @172. 阶乘后的零(解法二)
*/
let n = 30
console.log(Math.floor(n / 5) + Math.floor(n / 25) + Math.floor(n / 125) + Math.floor(n / 625) + Math.floor(n / 3125))源码:ts/leetcode/172. 阶乘后的零(解法二).ts
在 GitHub 上查看题目所在目录:lmliheng/algorithm