在 Java 中的 biginteger 数组中赋值

assigning values in biginteger array in Java

对于某些程序,我需要一个数组来存储第 100 项的斐波那契数列。虽然我可以使用 fib 函数计算并存储在数组中,但我想通过手动存储来节省时间。我该怎么做?

我试着这样做:

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

但是,我收到错误 "Type mismatch; can not convert int to BigInteger"。

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

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

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

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

int 是原始类型,而 BigInteger 是 class 类型。

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

为了解决这个问题,数组的每个索引都应该包含一个 BigInteger 类型的对象。

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

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