zoukankan      html  css  js  c++  java
  • 算法题 阶乘后的零

    题目:

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

    示例 1:

    输入: 3
    输出: 0
    解释: 3! = 6, 尾数中没有零。

    示例 2:

    输入: 5
    输出: 1
    解释: 5! = 120, 尾数中有 1 个零.

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    分析:

    这道题讲道理解出来不难,但是,万万没想到的是问题出在了溢出上,开始无脑用了int,结果数据溢出了。然后,抱着一丝侥幸心理,换成了long,然而依旧溢出,在这个时候想到了并不熟悉的BigInteger,由于并不熟悉只好找篇文章参照着来写,最终成品如下:

    代码:

     

    public int trailingZeroes(int n) {
            BigInteger res = BigInteger.ONE;
            for (int i = 1; i <= n; i++) {
                res = res.multiply(BigInteger.valueOf(i));
            }
            int count = 0;
            while (true) {
                if (!((res.remainder(BigInteger.valueOf(10))).equals(BigInteger.ZERO))) {
                    break;
                }
                res = res.divide(BigInteger.valueOf(10));
                count += 1;
            }
            return count;
        }

    在编译器里测试了一下,没什么问题,但是,在力扣提交的时候,显示cannot find symbol,我笑了... ...

    然后,只好手动导入了一下,import java.math.BigInteger;

     
  • 相关阅读:
    LinkLabel控件使用
    读取mysql代码片段
    设置点风格
    C# List 用法
    图片焦点图切换效果
    dreamweaver 泛泛之谈
    js 之for..in、表单及事件触发
    实现省份查询 功能
    input类主要是
    js (1)
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13328779.html
Copyright © 2011-2022 走看看