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 }

 解决了内存溢出的问题


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM