zoukankan      html  css  js  c++  java
  • Java实现 100!的阶乘

    刚学Java循环,求阶乘问题的时候,发现求10!可以用int类型存值,

    那么100!呢?用Long? 发现用Long类型,运行输出的结果是0,这不对啊 ,

    到底是什么原因呢? 用DeBug调试发现,100!数据太大,Long的数据存储空间8字节不够用溢出了。
    那么到底用什么方法来实现100!呢?

    如下代码:

     1 public class Demo01 {
     2     public static void main(String[] args) {
     3         System.out.println(factorial(100));
     4     }
     5 
     6     public static String  factorial(int count) {
     7         BigInteger result = new BigInteger(String.valueOf(1));
     8        for (int i = 1; i <= count; i++) {
     9            BigInteger i_value = new BigInteger(String.valueOf(i));
    10            result = result.multiply(i_value);
    11        }
    12        return result.toString();
    13     }
    14 }

     解决了内存溢出的问题

  • 相关阅读:
    [Luogu]小Z的AK计划
    [POI2006]OKR-Periods of Words
    [NOI2014]动物园
    [NOI2009]管道取珠
    [IOI2005]河流
    [国家集训队]Crash的文明世界
    [HDU5382]GCD?LCM!
    [AGC027E]ABBreviate
    [CF]Round510
    [NOIp2005]篝火晚会
  • 原文地址:https://www.cnblogs.com/Joe-666/p/9452537.html
Copyright © 2011-2022 走看看