172. Factorial Trailing Zeroes (Easy)
https://leetcode.com/problems/factorial-trailing-zeroes/
Given an integer n, return the number of trailing zeroes in n!.
Example 1:
Input: 3 Output: 0 Explanation: 3! = 6, no trailing zero.
Example 2:
Input: 5 Output: 1 Explanation: 5! = 120, one trailing zero.
Note: Your solution should be in logarithmic time complexity.
Solutions
class Solution {
// We can imaging that quantity of 2 is always much more than 5. Because every
// even number carries 2 and half of the numbers satisfy this. By contrast, 5 is less than 2.
public int trailingZeroes(int n) {
int ans = 0;
while (n > 0) {
// For the first pass, count how many numbers are multiple of 5
// For the send pass, count how many numbers are multiple of 5 * 5
// Repeat this process until n == 0
ans += n / 5;
n = n / 5;
}
return ans;
}
}