Java实现 100!的阶乘

2018-08-10 23:42:19来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

刚学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 }

 解决了内存溢出的问题

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:POI打印-----文件下载

下一篇:一、Java循环控制语句练习