这是我的代码。当我创建BigInteger
数组并尝试分配值时,它会显示错误。
package test;
import java.math.*;
import java.lang.*;
import java.util.*;
public class Test {
public static void main(String[] args) {
BigInteger[] coef = new BigInteger[78];
int a=24;
coef[a]=676557656534345345654645654654645645645645665656567; // Error comes here why
System.out.println(coef[a]);
}
}
答案 0 :(得分:2)
Java具有静态类型,并且仅对原始类型的包装器启用自动装箱,例如int
到Integer
,但不适用于BigInteger
。你必须要做
new BigInteger("676557656534345345654645654654645645645645665656567")
明确。
答案 1 :(得分:2)
首先,我们不允许使用2147483647
作为输入,因为int
范围是-2147483648 : 2147483647
。如果您的输出大于此数字,它将自动反转并达到其最低值,即-2147483648
。
要使用BigInteger
操作的位号,请将号码设为String
。
作为你的问题我建议使用
coef[a]=new BigInteger("676557656534345345654645654654645645645645665656567");
因为它为您提供了java.lang.Math
的所有相关方法,您可以通过在其中传递字符串来执行算术运算。check this document
我制作了Fabonacci系列,当一个大数字传递给它时会产生巨大的输出....
查看Fabonacci series on my GitHub
希望它可以帮到你!!
答案 2 :(得分:1)
答案 3 :(得分:0)
public static void main(String[] args) {
BigInteger[] coef = new BigInteger[78];
int a = 24;
coef[a] = new BigInteger("676557656534345345654645654654645645645645665656567");
System.out.println(coef[a]);
}