分配给 BigInteger 数组中的 an 元素时出错

Error assigning to an an element in an array of BigInteger

这是我的代码。当我创建一个 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]);
    }
}

Java 具有静态类型,自动装箱仅对基本类型的包装器启用,如 intInteger,但对 BigInteger 不启用。你将不得不做

new BigInteger("676557656534345345654645654654645645645645665656567") 

明确地。

首先,数字磨碎器然后 2147483647 将不允许作为输入,因为 int 范围是 -2147483648 : 2147483647。如果您的输出大于此数字,它将自动反转并达到其最低值,即 -2147483648.

要用BigInteger运算的位数取String.

作为你的问题,我建议使用

coef[a]=new BigInteger("676557656534345345654645654654645645645645665656567"); 

因为它为您提供了 java.lang.Math 中的所有相关方法,您可以通过在其中传递字符串来执行算术运算..check this document

我制作了 Fabonacci 系列,当传递给它一个大数字时,它会产生巨大的输出....

看看Fabonacci series on my GitHub

希望对你有帮助!!

    public static void main(String[] args) {
        BigInteger[] coef = new BigInteger[78];
        int a = 24;
        coef[a] = new BigInteger("676557656534345345654645654654645645645645665656567");
        System.out.println(coef[a]);
    }

时刻牢记

所有大于 2147483647 的数字都不允许作为输入,因为整数范围是 -21474836482147483647(永远不要忘记)。 如果以防万一您的输出大于限制,它将反转并达到其最低值,即 -2147483648.

我建议您使用:

coef[a]=new BigInteger("324576565343453456546456546546456456456455643671"); 

所有重要的功能都在java.lang.Math class中,您可以通过向其传递一个字符串来执行算术运算。