Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
The factor of 10 is 2 and 5. Given N!, the factor of 5 is always less than 2. So we can just count the number of factor 5 in the factorial of N.
Be careful of the overflow issue.
class Solution {
public:
int trailingZeroes(int n) {
int ans = 0;
long factor = 5; // BUG overflow
while(n >= factor){
ans += n / factor;
factor = factor * 5;
}
return ans;
}
};
