Java中在biginteger数组中赋值

Java中在biginteger数组中赋值,java,arrays,biginteger,Java,Arrays,Biginteger,对于一些程序,我需要一个数组来存储一个斐波那契序列号,直到第100项。虽然我可以使用fib函数计算并存储在数组中,但我希望通过手动存储来节省时间。我该怎么做 我试着这样做: BigInteger[] arr={259695496911122585,420196140727489673, 679891637638612258,1100087778366101931,1779979416004714189}; 但是,我得到的错误类型不匹配;无法将int转换为biginger。您有一个biginge

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

我试着这样做:

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

但是,我得到的错误类型不匹配;无法将int转换为biginger。

您有一个biginger数组,并尝试添加基本int类型。您必须创建BigInteger实例,它可以是数组的一部分:

BigInteger[] arr={BigInteger.valueOf(1),BigInteger.valueOf(259695496911122585L)};
或者,如果您的值比长值大,请使用带字符串参数的构造函数:

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

int是基元类型,而biginger是类类型

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

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

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

哪里是一个数字,和。。。是附加指数

是什么让你认为BigInteger有一种文字格式?您需要使用biginger.valueof2596954949911122585等@JonSkeet,这是一个完全有效的答案=@JonSkeet它是错的。LONG val{}的BigInteger值。valueOf需要很长时间。@JonSkeet这意味着我没有办法节省时间,我需要计算所有的谎言数字?@Goodbadand丑恶:哎呀,我以为它超载了。不,改用构造函数:new BigInteger 259695496911122585是的,你是对的,但我需要为每个条目编写新的BigInteger。是的,但这可以在具有搜索/替换或块编辑模式的优秀编辑器中轻松完成。此外,您还可以在计算时将值添加到代码中的数组中,并使用序列化将其保存以供以后的程序使用,或者仅以此java数组格式打印并复制/粘贴它们。非常有用,请详细说明,如何以java数组格式打印。像这样简单而愚蠢的东西,其中bia是带有计算值的数组:System.out.printBigInteger[]bia={;forBigInteger bia:bia{System.out.printnew BigInteger\+bi+\,;}System.out.println};}然后可以复制和粘贴该程序中的字符串,并在java代码中替换bia。注释仅限于我可以键入的内容:。