1 回答

TA貢獻1898條經(jīng)驗 獲得超8個贊
存儲100的階乘,這種超大數(shù)字,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("參數(shù)不能為負!"); } for (int i = 1; i <= num; i++) { sum =sum.multiply(new BigDecimal(i));//循環(huán)進行累乘 } return sum;// 返回結果字符串 } } |
如果是BigDecimal都處理不了超大數(shù)字, 那么可以使用String來存儲
String str ="123...";//這種方式,是明文寫入代碼的,字符串長度不能太長.
所以太長的文本應該寫入字符串文本中. 使用的時候使用IO進行讀取
添加回答
舉報