gpt4 book ai didi

java - 为什么会出现无限循环?关于 BigInteger.remainder()

转载 作者:行者123 更新时间:2023-11-30 03:16:00 28 4
gpt4 key购买 nike

public class Ex14_11 {
public static void main(String[] args){
long b = Long.MAX_VALUE;
BigInteger a = new BigInteger(Long.toString(b));
int count = 0;
BigInteger c = new BigInteger("5");
BigInteger d = new BigInteger("6");
BigInteger e = new BigInteger("0");
while( count < 10 ){
a.add(BigInteger.ONE);
if(a.remainder(d) == new BigInteger("0") || a.remainder(c) == new BigInteger("0")){
System.out.print(a);
count++;
}
}


}

}我需要找到大于 Long.MAX_VALUE 的前十个数字。所有数字都应该能够整除 5 或 6。

最佳答案

a.remainder(d) == new BigInteger("0")

您不能使用== 来比较BigInteger。使用 a.remainder(d).equals(new BigInteger("0")) (第二个比较类似)。请注意,在 Java 语言中,a == new Foo(...)始终为 false。

另外,你必须写

a = a.add(BigInteger.ONE);

...因为你现在写的就像

a + 1;

...实际上并没有对a做任何事情。

关于java - 为什么会出现无限循环?关于 BigInteger.remainder(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32571367/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com