LeetCode 172. 阶乘后的零

题目描述: 阶乘后的零

        给定一个整数 n,返回 n! 结果尾数中零的数量。

        注意: 你的解决方案应为对数时间复杂度。

解题思路:

        列出所有5的倍数发现了规律,所有5的倍数会添加一个0,所有5^2的倍数会比5的倍数多添加一个0,.......,所以得出了代码。

代码:

class Solution {
public:
    int trailingZeroes(int n) {
   //     n = 10;
        int ans = 0;
        while(n) {
            n /= 5;
            ans += n;
        }
        return ans;
    }
};

一开始的暴力t了:

class Solution {
public:
    int trailingZeroes(int n) {
        int ans = 0;
        for(int i = 1 ; i <= n ; i ++) {
            int n =0;
            int m =i;
            while( m%5 == 0) {
                m /= 5;
                n++;
            }
            ans += n;
        }
        return ans;
    }
};

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页