cc.*_*cc. 150 java biginteger
我有这段代码,但是没有用:
BigInteger sum = BigInteger.valueOf(0);
for(int i = 2; i < 5000; i++) {
if (isPrim(i)) {
sum.add(BigInteger.valueOf(i));
}
}
Run Code Online (Sandbox Code Playgroud)
sum变量总是0.我做错了什么?
Mar*_*ell 200
BigInteger是不可改变的.javadocs声明add() "[r] eturns一个BigInteger,其值为(this + val)." 因此,您无法更改sum,您需要将add方法的结果重新分配给sum变量.
sum = sum.add(BigInteger.valueOf(i));
Run Code Online (Sandbox Code Playgroud)
Boz*_*zho 57
sum = sum.add(BigInteger.valueOf(i))
Run Code Online (Sandbox Code Playgroud)
该BigInteger班是不可改变的,因此你不能改变其状态.所以调用"add"会创建一个新的BigInteger,而不是修改当前的.
Dea*_*n J 21
其他答复已经钉了它; BigInteger是不可变的.这是使代码工作的微小变化.
BigInteger sum = BigInteger.valueOf(0);
for(int i = 2; i < 5000; i++) {
if (isPrim(i)) {
sum = sum.add(BigInteger.valueOf(i));
}
}
Run Code Online (Sandbox Code Playgroud)
Arv*_*ind 11
java.math.BigInteger是一个不可变类,所以我们不能在已经分配的对象的位置分配新对象.但是您可以创建新对象来分配新值,如:
sum = sum.add(BigInteger.valueOf(i));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
330212 次 |
| 最近记录: |