LeetCode 172: Factorial Trailing Zeroes

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章