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;

     
  • 相关阅读:
    数据结构(三)栈与递归
    机器学习(二)------ 回归
    数据结构(二)线性表
    数据结构(一)数据结构基础
    机器学习 (一)------分类
    操作系统概述
    NumPy函数库基础
    总线与输入输出子系统
    FT VIEW SE高效开发之全局对象
    STUDIO 5000 V32新CRACK和新功能
  • 原文地址:https://www.cnblogs.com/wxdmw/p/13328779.html
Copyright © 2011-2022 走看看