一、题干
1011 A+B和C (15)(15 分)
给定区间[-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
二、分析
1.首先,范围肯定是超过int的界限的,我们就用long
2.代码:
package PTA.basic.APlusBCompareToC1011;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class APlusBCompareToC {
public static void main(String[] args) throws Exception {
main();
}
public static String[] getData() throws Exception {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int size = Integer.parseInt(bufferedReader.readLine());
String[] targetInt = new String[size];
for (int i = 0 ; i < targetInt.length ; i ++)
targetInt[i] = bufferedReader.readLine();
return targetInt;
}
public static void main() throws Exception {
String[] target = getData();
long[] aim = null;
for (int i = 0 ; i < target.length ; i ++) {
aim = splitToLongArray(target[i]);
System.out.println("Case #" + (i + 1) + ": " + (aim[0]+aim[1]>aim[2]));
}
}
public static long[] splitToLongArray(String s) {
long[] target = new long[3];
String[] targetString = s.split(" ");
target[0] = Long.parseLong(targetString[0]);
target[1] = Long.parseLong(targetString[1]);
target[2] = Long.parseLong(targetString[2]);
return target;
}
}
代码风格从来是这么奇怪