leetcode刷題筆記172 階乘后的零


題目描述:


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

示例1:

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

示例2:

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

說明: 你的解法應該為 O(logN) 時間復雜度。

題目分析:

要求末尾有多少個零,則該數應為x*10的形式等於x*(2*5k

也就是求該數分解質因子后有幾個5就行,:如1*2*3*4*5=1*2*3*2*2*5(里面有一個5)所以結果為1個0

詳見代碼

 

解答代碼:

class Solution {
public:
    int trailingZeroes(int n) {
        int sum=0;
        while(n>0){
            sum+=n/5;
            n/=5;
        }
    
        return sum;
    }
};
Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM