LeetCode-in-Go

172. Factorial Trailing Zeroes

Medium

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:

Follow up: Could you write a solution that works in logarithmic time complexity?

Solution

func trailingZeroes(n int) int {
	base := 5
	count := 0
	for n >= base {
		count += n / base
		base = base * 5
	}
	return count
}