HappyLeetcode39:Factorial Trailing Zeroes

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

Note: Your solution should be in logarithmic time complexity.

 

这个是我的代码,但是超时

class Solution {
public:
    int trailingZeroes(int n) {
        if (n <= 4)
            return 0;
        int count = 0;
        int multi = 1;//计算所需内容累乘的积
        for (int i = 5; i <= n; i += 5)
        {
            multi *= i;
            while (multi % 5 == 0)
            {
                multi /= 5;
                count++;
            }
        }
        return count;
    }
};

 

网上抄的别人的答案

class Solution {
public:
    int trailingZeroes(int n) 
    {
    int c = 0;
    for( ; n > 4; c += (n/=5) );
    return c;
    }
};

class Solution {
public:
    int trailingZeroes(int n)  
    {
    int c = 0;
    for( ; n > 4; c += (n/=5) );
    return c;
    }
};

posted @ 2014-12-30 21:26  程序员小王  阅读(108)  评论(0)    收藏  举报