0172. Factorial Trailing Zeroes
https://leetcode.com/problems/factorial-trailing-zeroes
Description
Given an integer n
, return the number of trailing zeroes in n!
.
Note that n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1
.
Example 1:
**Input:** n = 3
**Output:** 0
**Explanation:** 3! = 6, no trailing zero.
Example 2:
**Input:** n = 5
**Output:** 1
**Explanation:** 5! = 120, one trailing zero.
Example 3:
**Input:** n = 0
**Output:** 0
Constraints:
0 <= n <= 104
Follow up: Could you write a solution that works in logarithmic time complexity?
ac
class Solution {
public int trailingZeroes(int n) {
int res = 0;
while (n >= 5) {
n /= 5;
res += n;
}
return res;
}
}
/*
tailing 0s result from 2 * 5, so counting them.
2 is ample, almost n / 2. so just count 5.
n! = 5 * 10 * 15 * 25 * 30 ...
some have one '5', some have two '5'.
n / 5 : count those have one '5'
n / 5 / 5 : count those have two '5'
.
.
.
so, that is: n /= 5; res += n;
*/
Last updated
Was this helpful?