示例 1:
输入:n = 3
输出:0
解释:3! = 6 ,不含尾随 0
示例 2:
输入:n = 5
输出:1
解释:5! = 120 ,有一个尾随 0
示例 3:
输入:n = 0
输出:0
提示:
0 <= n <= 104
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/factorial-trailing-zeroes
思路:
显然,计算出阶乘的结果再计算其 0 的个数,实在是不太现实。我们知道,想要乘积产生 0 ,只需要计算阶乘中有多少个 2 * 5 即可。而考虑到每个偶数都都能提供个 2,所以 2 的数量远远多于 5,因此我们只需要计算5的个数即可。
有多少个5,就意味着有多少个 0 。
java:
class Solution {
public int trailingZeroes(int n) {
int res = 0;
int dividor = 5;
while(dividor <=n) {
res += n/dividor;
dividor*=5;
}
return res;
}
}