0
我想從Java的掃描器輸入中只獲得BigInteger
,但是循環超出了限制。如果我想得到2倍的輸入,循環獲得兩次,但只打印一次。我想獲得輸入並將輸入和顯示結果相乘。Java中的BigInteger掃描器輸入
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Scanner;
public class Fastmultiplication {
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger m = BigInteger.valueOf(1);
BigInteger n = BigInteger.valueOf(1);
Scanner sc = new Scanner(System.in);
Scanner sc1 = new Scanner(System.in);
int in = sc.nextInt();
ArrayList<BigInteger> al = new ArrayList<BigInteger>();
while ((sc.hasNextBigInteger()) && (sc1.hasNextBigInteger()) && (in != 0)) {
in--;
m = sc.nextBigInteger();
n = sc1.nextBigInteger();
al.add(m.multiply(n));
}
System.out.println(al.size());
for (BigInteger integer : al) {
System.out.println(integer);
}
sc.close();
sc1.close();
}
}
非常感謝您的回答,我已經試過這個,但是SPOJ會拋出一個RTE。如果我們輸入字符串,程序應該終止。 – krishna
我已經更新了我的答案。在錯誤的輸入中,我終止了這個程序。如果需要,您可以根據自己的需要更改驗證部分。你問題中的主要問題是循環超出了限制。 –
感謝您糾正此問題,但即使使用此代碼,我也會得到錯誤答案。問題是http://www.spoj.com/problems/MUL/ – krishna