题目要求:https://leetcode.com/problems/factorial-trailing-zeroes/
1)阶乘末尾0的个数,等于各个元素分解素因素后,2*5的个数
2)对阶乘而言,素因素分解后2的数量一定多于5,因此只需要统计5的个数
3)题目要求时间复杂度为对数级别,因此对每个数求5的个数不符合要求。需要用一下方式求5的个数:
对于阶乘而言,n/k 表示其中能被k整除的数的个数。
AC代码:
public class Solution {
public int trailingZeroes(int n) {
if(n==0) return 0;
int sumOf5 = 0;
while(n/5 != 0){
n /= 5;
sumOf5 += n;
}
return sumOf5;
}
}