[英]Java nested biginteger loop is not working
我想用java的biginteger创建一个嵌套循环,但是我遇到了第一个循环的问题。它仍然停滞不前,我试图打印它,它总是2
而不加1
Scanner in=new Scanner(System.in);
BigInteger y=in.nextBigInteger();
BigInteger h=BigInteger.valueOf(1);
for(BigInteger i=BigInteger.valueOf(2);i.compareTo(y)<=0;i.add(BigInteger.ONE)){
h=i;
System.out.println(i);
for(BigInteger j=i;j.compareTo(y)<=0;j.add(BigInteger.ONE)){
h=h.multiply(j);
if(h.compareTo(y)==0){
System.out.println(j+" "+i);
}else if(h.compareTo(y)>0){
break;
}
}
}
}
}
从文档中:
加(BigInteger val)
返回其值为(this + val)的BigInteger。
因此, i.add(1)
行为与i++
行为不同, BigInteger
是不可变的。 您需要改用i = i.add(BigInteger.ONE)
,它应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.