2017-01-15 6 views
0

Javaのbigintegerでネストループを作成したいのですが、最初のループで問題が発生しています。停滞していて、印刷しようとしましたが、常にドキュメントからJavaのネストされたbigintegerループが機能していません

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

'BigInteger'の' add'メソッドは数字の合計を返しますが、 'i'と' j'変数には割り当てません。 –

+0

@MaximDobryakovお手数です。ご協力いただきありがとうございます! – user7302801

答えて

2

アドオン(BigIntegerをval)で

値が(this + val)のBigIntegerを返します。

のでi.add(1)は、i++と同じように動作していないBigIntegerは不変です。代わりにi = i.add(BigInteger.ONE)を使用する必要があります。

+0

あなたの右の私の仲間 – user7302801

+0

@ user7302801あなたのアップヴォート、親愛なる友のための感謝のあなた:P – Gumbo

+0

私はあなたを歓迎する – user7302801

関連する問題