繁体   English   中英

Java嵌套的biginteger循环不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM