Given three integers A, B and C in [−263,263], you are supposed to tell whether A+B>C.
Input Specification:
The first line of the input gives the positive number of test cases, T (≤10). Then T test cases follow, each consists of a single line containing three integers A, B and C, separated by single spaces.
Output Specification:
For each test case, output in one line
Case #X: true
if A+B>C, orCase #X: false
otherwise, where X is the case number (starting from 1).Sample Input:
3 1 2 3 2 3 4 9223372036854775807 -9223372036854775808 0
Sample Output:
Case #1: false Case #2: true Case #3: false
这道题刚看到还准备用大数加法起笔呢,后来发现没那么麻烦,几个条件判断一下就好了。 新知道两个点,两个正数相加,溢出的和是负的,两个负数相加溢出的话,和是正的!
#include<cstdio>
#include <cstring>
#include<algorithm>
#include <iostream>
#include <cmath>
#define ll long long
using namespace std;
int main()
{
ll a,b,c,sum;
int t;
scanf("%d",&t);
for(int i = 1; i <= t;i++)
{
sum = 0;
scanf("%lld%lld%lld",&a,&b,&c);
sum = a + b;
//cout<<sum<<endl;
if(a > 0 && b > 0 && sum < 0)//1
printf("Case #%d: true\n",i);
else if(a < 0 && b < 0 && sum >= 0)//2.注意别忘等于号!
printf("Case #%d: false\n",i);
else if(sum > c)//3.条件2含在条件3里面,所以要先剔除条件2的情况
printf("Case #%d: true\n",i);
else
printf("Case #%d: false\n",i);//4
}
return 0;
}