如何使用BigInteger?

2022-08-31 07:29:27

我有这段代码,它不起作用:

BigInteger sum = BigInteger.valueOf(0);
for(int i = 2; i < 5000; i++) {
    if (isPrim(i)) {
        sum.add(BigInteger.valueOf(i));
    }
}

总和变量始终为 0。我做错了什么?


答案 1

BigInteger是不可变的。javadocs 指出 add() “[r]eturns 一个值为 (this + val) 的大Integer。因此,您无法更改 ,您需要将方法的结果重新分配给变量。sumaddsum

sum = sum.add(BigInteger.valueOf(i));

答案 2
sum = sum.add(BigInteger.valueOf(i))

该类是不可变的,因此您无法更改其状态。因此,调用“add”会创建一个新的,而不是修改当前。BigIntegerBigInteger


推荐