您的位置:首页 > 大数据 > 人工智能

[Leetcode 172, Easy] Factorial Trailing Zeroes

2015-02-23 11:26 337 查看
Problem:

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.
Analysis:
When to multiply numbers, we can decompose each number into product of primes and re-arrange the order of multiplications. Moreover, each zero in the tail of product comes only from a product of one two and one five. Since the
number of prime factor 2 is more than the prime factor 5. Then, the number of tail zeros is equal to the number of prime factor 5.

This solution is ensured by the fundemental theorem of arithmetics.

Solution:

C++:

int trailingZeroes(int n) {
        if(n == 0)
            return 0;
            
        int count = 0;
        while(n != 0) {
            n /= 5;
            count += n;
        }
        
        return count;
        
    }
Java:

Python:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: