猿问

java如何存储巨大的数字比如100!

java如何存储巨大的数字比如100!


不负相思意
浏览 631回答 1
1回答

汪汪一只猫

存储100的阶乘,这种超大数字,java 还是提供了一些类的比如&nbsp;1: 使用BigInteger或者 BigDecimal...1234567891011121314151617181920212223import&nbsp;java.math.BigDecimal;import&nbsp;java.math.BigInteger;//&nbsp;测试类&nbsp;&nbsp;public&nbsp;class&nbsp;Demo&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigDecimal&nbsp;s1&nbsp;=&nbsp;jieCheng(100);//BigDecimal存100的阶乘还是没有问题的&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;bi=s1.toBigInteger();//BigInteger存100的阶乘也可以&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(bi);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(s1);&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;BigDecimal&nbsp;jieCheng(int&nbsp;num)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigDecimal&nbsp;sum&nbsp;=&nbsp;new&nbsp;BigDecimal("1");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(num&nbsp;<&nbsp;0)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;IllegalArgumentException("参数不能为负!");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;<=&nbsp;num;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;=sum.multiply(new&nbsp;BigDecimal(i));//循环进行累乘&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sum;//&nbsp;返回结果字符串&nbsp;&nbsp;&nbsp;&nbsp;}}如果是BigDecimal都处理不了超大数字, &nbsp;那么可以使用String来存储String str ="123...";//这种方式,是明文写入代码的,字符串长度不能太长.所以太长的文本应该写入字符串文本中. 使用的时候使用IO进行读取&nbsp;
随时随地看视频慕课网APP

相关分类

Java
我要回答