172. 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.

10 = 2 x 5,而2的倍數數量遠多於5倍數的數量,所以這題要找的就是5倍數的數量,但除了5,25、125等等5的次方也要考慮進來。

int trailingZeroes(int n) { // time: O(logn); space: O(1)
    int res = 0;
    while (n) {
        res += (n / 5);
        n /= 5;
    }
    return res;
}

Last updated

Was this helpful?