1 回答
TA贡献1898条经验 获得超8个赞
存储100的阶乘,这种超大数字,java 还是提供了一些类的比如
1: 使用BigInteger或者 BigDecimal...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import java.math.BigDecimal; import java.math.BigInteger; // 测试类 public class Demo { public static void main(String[] args) { BigDecimal s1 = jieCheng(100);//BigDecimal存100的阶乘还是没有问题的 BigInteger bi=s1.toBigInteger();//BigInteger存100的阶乘也可以 System.out.println(bi); System.out.println(s1); }
public static BigDecimal jieCheng(int num) { BigDecimal sum = new BigDecimal("1"); if (num < 0) { throw new IllegalArgumentException("参数不能为负!"); } for (int i = 1; i <= num; i++) { sum =sum.multiply(new BigDecimal(i));//循环进行累乘 } return sum;// 返回结果字符串 } } |
如果是BigDecimal都处理不了超大数字, 那么可以使用String来存储
String str ="123...";//这种方式,是明文写入代码的,字符串长度不能太长.
所以太长的文本应该写入字符串文本中. 使用的时候使用IO进行读取
添加回答
举报