LeetCode in TypeScript

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

function trailingZeroes(n: number): number {
    let base = 5
    let count = 0
    while (n >= base) {
        count += Math.floor(n / base)
        base *= 5
    }
    return count
}

export { trailingZeroes }