题目描述

分析:
long long的范围是[-26,263),利用机组的知识,只有两个符号相同的数相加,结果的符号不同会发生溢出。那么当a>0,b>0,a+b<0发生正溢出,此时a+b>c;当a<0,b<0,a+b>0发生负溢出,此时a+b<c.
#include<cstdio>
int main(){
int t,kase=1;
scanf("%d",&t);
while(t--){
long long a,b,c;
scanf("%lld%lld%lld",&a,&b,&c);
long long temp=a+b;
bool flag;
if(a>0&&b>0&&temp<0) flag=true;
else if(a<0&&b<0&&temp>=0) flag=false;
else if(temp>c) flag=true;
else flag=false;
if(flag){
printf("Case #%d: true\n",kase++);
}
else{
printf("Case #%d: false\n",kase++);
}
}
}
该博客主要讨论了在编程中如何判断long long类型的整数加法是否会发生溢出。通过分析正溢出和负溢出的情况,给出了当a+b大于c时可能存在溢出的条件,并提供了相应的C++代码实现进行判断。
352

被折叠的 条评论
为什么被折叠?



