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