写在最前:欢迎批评,欢迎任意地方的指正,用你们的优秀的java代码砸死我吧!!
问题——————
给定区间 [−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
解题思路:
这题说白了是让你在不单纯的计算两数相加的情况下做比较,分情况讨论,如果AC或者BC两正数或者两负数,就要用A-C来和B比较,如果不是就可以用普通方法,但是用Java写的话,我们Java相对于C有了时间的弱点,自然也有他的优点,这个题使用long这个类型来存储数据就可以了,简单的相加比较即可,代码如下
package not.die.in.here;
//满分15
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _1011_AplusBCompC {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] buf = null;
int n = Integer.parseInt(bf.readLine());
long A, B, C = 0;
for(int i=0;i<n;i++) {
buf = bf.readLine().split(" ");
//转化成long类型
A = Long.parseLong(buf[0]);
B = Long.parseLong(buf[1]);
C = Long.parseLong(buf[2]);
if(A+B>C)//直接计算
System.out.println("Case #"
+ (i+1)
+ ": true");
else
System.out.println("Case #"
+ (i+1)
+ ": false");
}
}
}