0172. 阶乘后的零
题目地址(172. 阶乘后的零)
题目描述
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
前置知识
公司
思路



关键点解析
代码

最后更新于
这有帮助吗?
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。




最后更新于
这有帮助吗?
这有帮助吗?
/*
* @lc app=leetcode id=172 lang=javascript
*
* [172] Factorial Trailing Zeroes
*/
/**
* @param {number} n
* @return {number}
*/
var trailingZeroes = function (n) {
// tag: 数论
// if (n === 0) return n;
// 递归: f(n) = n / 5 + f(n / 5)
// return Math.floor(n / 5) + trailingZeroes(Math.floor(n / 5));
let count = 0;
while (n >= 5) {
count += Math.floor(n / 5);
n = Math.floor(n / 5);
}
return count;
};class Solution:
def trailingZeroes(self, n: int) -> int:
count = 0
while n >= 5:
n = n // 5
count += n
return count
# 递归
class Solution:
def trailingZeroes(self, n: int) -> int:
if n == 0: return 0
return n // 5 + self.trailingZeroes(n // 5)class Solution {
public:
int trailingZeroes(int n) {
int res = 0;
while(n >= 5)
{
n/=5;
res += n;
}
return res;
}
};class Solution {
public int trailingZeroes(int n) {
int res = 0;
while(n >= 5)
{
n/=5;
res += n;
}
return res;
}
}