Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么会有无限循环?关于BigInteger.rements() 公共类Ex14\u 11{ 公共静态void main(字符串[]args){ 长b=长最大值; BigInteger a=新的BigInteger(Long.toString(b)); 整数计数=0; BigInteger c=新的BigInteger(“5”); BigInteger d=新的BigInteger(“6”); BigInteger e=新的BigInteger(“0”); 同时(计数_Java_Loops_Infinite Loop_Biginteger - Fatal编程技术网

Java 为什么会有无限循环?关于BigInteger.rements() 公共类Ex14\u 11{ 公共静态void main(字符串[]args){ 长b=长最大值; BigInteger a=新的BigInteger(Long.toString(b)); 整数计数=0; BigInteger c=新的BigInteger(“5”); BigInteger d=新的BigInteger(“6”); BigInteger e=新的BigInteger(“0”); 同时(计数

Java 为什么会有无限循环?关于BigInteger.rements() 公共类Ex14\u 11{ 公共静态void main(字符串[]args){ 长b=长最大值; BigInteger a=新的BigInteger(Long.toString(b)); 整数计数=0; BigInteger c=新的BigInteger(“5”); BigInteger d=新的BigInteger(“6”); BigInteger e=新的BigInteger(“0”); 同时(计数,java,loops,infinite-loop,biginteger,Java,Loops,Infinite Loop,Biginteger,} 我需要找到前十个大于Long.MAX_值的数字。所有数字都应该能够精确地除以5或6 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");

} 我需要找到前十个大于Long.MAX_值的数字。所有数字都应该能够精确地除以5或6

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++;
        }
    }


}
您不能使用
==
来比较
biginger
s。使用
a.rements(d).equals(新的BigInteger(“0”))
(第二次比较也是如此)。请注意,
a==newfoo(…)
在Java语言中总是false

此外,你必须写作

a.remainder(d) == new BigInteger("0")
…因为你现在写的是

a = a.add(BigInteger.ONE);

…实际上对
a

没有任何作用,可以添加
BigInteger。零
新的BigInteger(“0”)
的更好选择。
a + 1;