給定一個整數 n,返回 n! 結果尾數中零的數量。
示例 1:
輸入: 3
輸出: 0
解釋: 3! = 6, 尾數中沒有零。
示例 2:
輸入: 5
輸出: 1
解釋: 5! = 120, 尾數中有 1 個零.
說明: 你算法的時間複雜度應爲 O(log n) 。
題解:
這道題求解的是尾數中零的個數,根據乘法規則我們知道,2的倍數與5的倍數相乘得到尾數爲零的數字。這裏還要考慮本身就含有0的數字,比如:10,20,100……。綜合一下,我們只需要找到從1到要求階乘數字之間含有多少個5的倍數,比如,1~24含有4個5的倍數,分別是5,10,15,20,所以,24的階乘的尾數含有4個零。
時間和內存消耗爲:
代碼爲:
class Solution {
public int trailingZeroes(int n) {
int ans=0;
while(n!=0){
n=n/5;
ans+=n;
}
return ans;
}
}