码迷,mamicode.com
首页 > 编程语言 > 详细

Java实现 100!的阶乘

时间:2018-08-10 01:33:34      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:value   存储   style   str   问题   new   out   bug   tostring   

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

 解决了内存溢出的问题

Java实现 100!的阶乘

标签:value   存储   style   str   问题   new   out   bug   tostring   

原文地址:https://www.cnblogs.com/Joe-666/p/9452537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!