对于某些程序,我需要一个存储Fibonacci序列号的数组,直到第100个项。虽然我可以使用fib函数计算并存储在数组中,但我希望通过手动存储来节省时间。我怎么能这样做?
我试图这样做:
BigInteger[] arr={259695496911122585,420196140727489673,
679891637638612258,1100087778366101931,1779979416004714189};
但是,我收到错误“类型不匹配;无法将int转换为BigInteger”。
答案 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(#),.....}
其中#是数字,而......是附加索引。