给定一个整数 n ,返回 n! 结果中尾随零的数量。
提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
示例 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.com/problems/factorial-trailing-zeroes
解题思路:此题求得是n阶乘零得个数,其中只有 5*2的倍数(如5*2,5*4,5*6,5*8) 末尾才有0,所以就可以抛去其他数据 专门看能凑出多少个 5*2的倍数,偶数出现的次数肯定比5多,则只需计算5,5²=25,125...的倍数出现的个数
而 5, 25, 125 等等的倍数有多少个呢?直接用除法计算即可
5 的倍数有 n1= n / 5个
25 的倍数有 n2= n / 25 个
125 的倍数有 n3= n / 125 个.......
则count = n1+n2+n3...,
class Solution {
public:
int trailingZeroes(int n) {
int count = 0;
int a=5;
while(a<=n){
count += n/a;
a*=5;
}
return count;
}
};