给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
输入格式:输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。
输出格式:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。
输入样例:
4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647
输出样例:
Case #1: false
Case #2: true
Case #3: true
Case #4: false
idea:
- 题目比较简单,求A+B>C,关键是2的31次方容易和int类型的取值范围搞混,int类型取值范围为2的31次方减1
-献上我的答案和牛客网上看到好的答案
code:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int num=0;
Scanner in=new Scanner(System.in);
num = Integer.parseInt(in.nextLine());
List<String> output=new ArrayList<>();
for (int i = 0; i < num; i++) {
output.add(in.nextLine());
}
for (int i = 0; i < output.size(); i++) {
String[] split = output.get(i).split(" ");
if((Long.parseLong(split[0].trim()) + Long.parseLong(split[1].trim()))> Long.parseLong(split[2].trim())){
System.out.println("Case #"+(i+1)+": true");
}else{
System.out.println("Case #"+(i+1)+": false");
}
}
}
}
Best
import java.util.*;
import java.math.*;
public class Test{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int T = in.nextInt();
for(int i=1; i<=T; i++){
BigInteger a = in.nextBigInteger(); //用BigInteger做数据类型
BigInteger b = in.nextBigInteger();
BigInteger c = in.nextBigInteger();
BigInteger sum = a.add(b); //A+B
if(sum.compareTo(c)>0) //用compareTo方法和C比较
System.out.println("Case #"+i+": true");
else
System.out.println("Case #"+i+": false");
} }
}