在Java中分配biginteger数组中的值

时间:2015-08-13 16:03:51

标签: java arrays biginteger

对于某些程序,我需要一个存储Fibonacci序列号的数组,直到第100个项。虽然我可以使用fib函数计算并存储在数组中,但我希望通过手动存储来节省时间。我怎么能这样做?

我试图这样做:

BigInteger[] arr={259695496911122585,420196140727489673,
679891637638612258,1100087778366101931,1779979416004714189};

但是,我收到错误“类型不匹配;无法将int转换为BigInteger”。

2 个答案:

答案 0 :(得分:2)

您有一个BigInteger数组并尝试添加原始int类型。您必须创建可以成为数组一部分的BigInteger实例:

BigInteger[] arr={BigInteger.valueOf(1),BigInteger.valueOf(259695496911122585L)};

或者,如果您的值作为long值更大,请使用带有String参数的构造函数:

BigInteger[] arr={new BigInteger("259695496911122585"),new BigInteger("420196140727489673")};

答案 1 :(得分:1)

int是基本类型,而BigInteger是类类型。

对于您的情况,您有一个BigIntegers数组。因此,数组的每个元素都必须是BigInteger类类型。你给它int,一个原始类型,所以它会抱怨。

要解决此问题,数组的每个indice都应包含BigInteger类型的对象。

BigInteger[] bigIntegerArray = {new BigInteger(#),.....}

其中#是数字,而......是附加索引。