題目描述:
給定一個整數 n,返回 n! 結果尾數中零的數量。
示例1:
輸入: 3 輸出: 0 解釋: 3! = 6, 尾數中沒有零。
示例2:
輸入: 5 輸出: 1 解釋: 5! = 120, 尾數中有 1 個零.
說明: 你的解法應該為 O(logN) 時間復雜度。
題目分析:
要求末尾有多少個零,則該數應為x*10k 的形式等於x*(2k *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; } };