2017-04-08 87 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确定的事情。 :) –