本文介绍: 而质因数为2会每两次出现一次,质因数为5会每五次出现一次,因此我们只需要统计出现质因数为5的情况。我的做法:(错误)直接找余5得0得数。而能凑出0的只能是10,而10又等于。实际上应该找存在多少个为5质因数。,所以我们找可以出现多少对。

我的做法:(错误)直接找余5得0得数

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

实际上应该找存在多少个为5质因数。

举例:

11=11*10*9*8*7*6*5*4*3*2*1=39,916,800(两个0
11=11*2*5*9*2*4*7*2*3*5*2*2*3*2*1*1

而能凑出0的只能是10,而10又等于2*5,所以我们找可以出现多少对2*5,而质因数为2会每两次出现一次,质因数为5会每五次出现一次,因此我们只需要统计出现质因数为5的情况。

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

原文地址:https://blog.csdn.net/qq_43606119/article/details/135849690

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_61697.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注