1551. A + B 和 C
给定三个整数 A , B , C A,B,C A,B,C ,请你判断 A + B > C A+B>C A+B>C 是否成立。
输入格式
第一行包含整数 T T T ,表示共有 T T T 组测试数据。
接下来 T T T 行,每行包含一组数据,即三个整数 A , B , C A,B,C A,B,C 。
输出格式
每行输出一个结果,如果不等式成立,输出Case #X: true
,否则输出Case #X: false
,其中
X
X
X 表示数据编号(从
1
1
1 开始)。
数据范围
− 2 63 ≤ A , B , C ≤ 2 63 − 1 -2^{63} \le A,B,C \le 2^{63}-1 −263≤A,B,C≤263−1
输入样例:
3
1 2 3
2 3 4
9223372036854775807 -9223372036854775808 0
输出样例:
Case #1: false
Case #2: true
Case #3: false
思路:
判断相加是否溢出,如果正加正为负数或者负加负为正数,溢出。
题解:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
long long a, b, c;
scanf("%d", &T);
for(int i = 1; i <= T; i++)
{
scanf("%lld%lld%lld", &a, &b, &c);
long long sum = a + b;
if(a >= 0 && b >= 0 && sum < 0)
printf("Case #%d: true\n", i);
else if(a < 0 && b < 0 && sum >= 0)
printf("Case #%d: false\n", i);
else if(sum > c)
printf("Case #%d: true\n", i);
else
printf("Case #%d: false\n", i);
}
return 0;
}