给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes
解题思路
n
的阶乘,从1
连乘到n
,这中间每个数能够拆成多少个5
,最终结果末尾就有多少个0
因为2 * 5 = 10
,但是因子2
出现频率是5
的两倍,所以只需要看因子5
代码
class Solution {
public int trailingZeroes(int n) {
int result = 0;
// 找出有多少个因子5
for (int i = 5; i <= n; i++) {
int factor = i;
while (factor % 5 == 0) {
result++;
factor /= 5;
}
}
return result;
}
}