问题:您必须检查n个乘法的n个测试用例 和b等于或不等于第三个输入值。如果等于则输入YES 否则没有。 输入:2 5 6 30 4 3 20
输出:是否
说明:2是测试用例的数量。 5是& 6是b 乘法是30所以是
约束:
0<测试用例< = 1000000000 0< a< b< = 10000000
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.Scanner;
class ques1
{
public static void main(String[] args) throws Exception
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Scanner sc=new Scanner(System.in);
BigInteger test=new BigInteger(sc.next());
while(!test.equals(BigInteger.ZERO))
{
Scanner s=new Scanner(br.readLine());
s.useDelimiter(" ");
BigInteger p=new BigInteger(s.next());
BigInteger q=new BigInteger(s.next());
BigInteger r=new BigInteger(s.next());
if(p.multiply(q).equals(r))
{
System.out.println("YES");
}
else
{
System.out.println("NO");
}
test=test.subtract(BigInteger.ONE);
}
}
}
这个程序在eclipse中工作正常。但是在运行在像ideone.com等在线编译器上时,它会给出如下错误信息:
Exception in thread "main" java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at java.util.Scanner.<init>(Scanner.java:702)
at ques1.main(Main.java:18)
约束是如此之大,所以我使用biginteger.I也使用stringtokenizer而不是输入分离的扫描程序,但它也给出相同的错误。 我必须以间距格式输入,所以我使用stringtokenizer或扫描仪。 是否还有其他方法可以将它们分开。
答案 0 :(得分:1)
br.readLine()
将返回null
。并且new Scanner(String)
不接受null
作为参数。除此之外,如果您可以从资源中读取数据,则应始终检查有效输入。