PAT.A1065 A+B and C_#include

题意

给出3个整数A,B,C,如果A+B>C,输出true,否则输出false

注意点

1.long long的范围是[-2^63 ,2^63 )本题为 [−263,263],直接比较会出错

#include <bits/stdc++.h>
using namespace std;
int main(){
int T,i=1;
long long A,B,C,sum;
scanf("%d",&T);
while(T--){
bool flag;
scanf("%lld%lld%lld",&A,&B,&C);
sum=A+B;
if(A>0&&B>0&&sum<0){//说明正溢出了,A+B>C必然成立
flag=true;
}else if(A<0&&B<0&&sum>=0){//说明负溢出了,A+B>C必然不成立
flag=false;
}else if(sum>C){//一般情况
flag=true;
}else flag=false;

if(flag){
printf("Case #%d: true\n",i++);
}else{
printf("Case #%d: false\n",i++);
}
}
return 0;
}