力扣172.階乘後的零

FangYwang發表於2021-01-03

題目描述

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

示例

示例 1:

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

示例 2:

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

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

解題思路

本題考查階乘結果尾部有幾個0,如103030是1個,100是2個;分析階乘因子:僅有X5*2的倍數可以形成尾部0,容易理解2的倍數要多於型為X5的因子,所以統計5^i的個數即可
如程式碼:count+=(int)(n/pow(5,i));

程式碼

int trailingZeroes(int n){
    int count=0;

    for(int i=1;pow(5,i)<=n;i++){
        count+=(int)(n/pow(5,i));
    }return count;

}

連結

相關文章