Java:我无法将一个 BigInteger 添加到另一个

标签 java biginteger

<分区>

我正在尝试向启动的 BigInteger 添加一些大数字,但对于任何类型的输入,我的输出都为 0,请帮助我。

import java.util.Scanner;
import java.math.BigInteger;

public class NEO01 {

    public static void main(String []args){

        Scanner in = new Scanner(System.in);

        try{
            int t = in.nextInt();

            for(int i=0; i<t; i++){

                int n = in.nextInt();

                long[] a = new long[n];
                long count = 0;

                BigInteger sum_non_neg = new BigInteger("0");
                BigInteger sum_neg = new BigInteger("0");

                BigInteger s;

                for(int j=0; j<n; j++){

                    a[j] = in.nextInt();

                    if(a[j]<0){
                        s = BigInteger.valueOf(a[j]);
                        sum_neg.add(s);
                    }
                    else{
                        s = BigInteger.valueOf(a[j]);
                        sum_non_neg.add(s);
                        count++;
                    }   
                }

                s = BigInteger.valueOf(count);
                sum_non_neg.multiply(s);

                sum_non_neg.add(sum_neg);

                System.out.println(sum_non_neg);
            }
        }
        finally{
            in.close();
        }
    }
}

最佳答案

BigInteger 是不可变的,因此在 BigInteger 实例上调用 add() 不会更改其值,它会返回一个新的 BigInteger 实例。

由于您忽略了返回值,您的 sum_negsum_non_neg 保持不变。

您应该将加法的结果分配回您的变量:

            if(a[j]<0){
                s = BigInteger.valueOf(a[j]);
                sum_neg = sum_neg.add(s);
            }
            else{
                s = BigInteger.valueOf(a[j]);
                sum_non_neg = sum_non_neg.add(s);
                count++;
            }   

关于Java:我无法将一个 BigInteger 添加到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44481519/

相关文章:

java - Dagger 2 - 将类注入(inject)到声明的接口(interface)中

c# - 使用 BigInteger 的 Rsa 实现不适用于大数字

java - 显示输出的特定数字//从 bigInteger 中删除 0

c# - 如何生成一定范围内的随机 BigInteger?

c++ - 这些 C++ 代码是否针对添加 2 个正大整数进行了优化?

jax-ws - 编译时找不到 com.sun.xml.internal.ws.developer.JAXWSProperties

java - Scala REPL 只能以 root 用户身份运行,以非 root 身份运行时会出现错误

java - BigInteger 有上限吗?

java - XSLT 不向元素添加 XMLNS

java - 强制产生 IllegalArgumentException