美文网首页
java——末尾0的个数

java——末尾0的个数

作者: 李诗莹__三月 | 来源:发表于2019-11-20 17:37 被阅读0次

【题目描述】输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n =10; n! = 3628800,所以答案为2
输入描述:
输入一行,n(1<=n<=1000)
输出描述:
输出一个整数,即题目所求
输入例子
10
输出
2

题目分析:
由于0的来源是2 和5 ,但是在所有的数中以2为因数的数较多,所有在这里我们只需要考虑因子5的个数就行。

错误分析:不能以10为基准进行考虑,因为存在25中有2个因子5

方法一:

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

方法一:

public long trailingZeros(long n) {
        // write your code here
        long count = 0;
        long number= 25;
        for (long temp = 5; temp <= n; temp+=5) {
            count++;
            number= 25;
            // 判断是不是25、125、625...的倍数,并根据每次pwr的变化进行+1操作
            while (temp % number== 0) {
                count++;
                number*= 5;
            }
        }
        return count;
    }

相关文章

网友评论

      本文标题:java——末尾0的个数

      本文链接:https://www.haomeiwen.com/subject/bexaictx.html