leetcode-172. 階乘後的零刷題筆記(c++)

寫在前面

  • 數學題
    • n的階乘的尾部爲0的個數主要取決於其中5的個數。
    • 階乘尾數爲0,要得到0的尾數,就需要偶數與5相乘,由於偶數個數遠遠多於5的個數,所以有幾個5,尾數就有幾個0
    • 同時,10可以看做2*5(1個5),25看做5*5(2個5)

題目詳情

階乘後的零

給定一個整數 n,返回 n! 結果尾數中零的數量。

示例 1:
	輸入: 3
	輸出: 0
	解釋: 3! = 6, 尾數中沒有零。

示例 2:
	輸入: 5
	輸出: 1
	解釋: 5! = 120, 尾數中有 1 個零.

說明: 你算法的時間複雜度應爲 O(log n)

ac題目

class Solution {
public:
    int trailingZeroes(int n) {
        int sum = 0;
        while(n) {
            sum += n/5;
            n /= 5;
        }
        return sum;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章