題目要求: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;
}
}