2017-04-08 40 views
2

輸入:如何在java中處理大於BigInteger的大數字?

BigInteger l = BigInteger.valueOf(111111111111111110); 

編譯器錯誤消息

整數數目太大

我的目標是連續地遞減給定大量的直到某一值(說K)。

我該如何做到這一點?

+0

輸入如何轉換爲BigInteger? – kennytm

+0

「大於BigInteger」是什麼意思? –

+4

「如何在java中處理大於BigInteger的大數?」 BigInteger唯一的限制就是你的RAM。所以你的數量不可能超過BigInteger所能容納的數量。 –

回答

7

整數數量太大

爲什麼它給了一個錯誤的原因是因爲你已經傳遞到valueOf(...)的參數類型是int(這是除非你指定默認的類型否則),這是有限制的,並且你已經超過了這個限制,所以錯誤。

BigInteger l = BigInteger.valueOf(111111111111111110); // argument is int, so it will give a compiler error 

改爲使用long參數。

BigInteger value = BigInteger.valueOf(111111111111111110L); 

或使用string參數。

BigInteger value = new BigInteger("111111111111111110"); 
+4

請用'L'來代表'long'後綴。 'L'比'l'更容易閱讀,'l'可以用一些字體解釋爲'1'。 – Pshemo

+0

@Pshemo確定的事情。 :) –