题目
给定三个数,如果前两个数的和大于第三个个数就输出true
,否则输出false
思路
一开始我以为是考大整数,后来发现是考溢出,因为有一个类型是能容下64位整数的,就是long long,取值范围和溢出规律看这里,思路是这样的,两个正数相加溢出说明一定大于第三个数,如果两个负数相加溢出说明一定小于第三个数,如果没有溢出,判断就好了
代码
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=1; i<=n; i++) {
long long a,b,c;
long long sum;
cin>>a>>b>>c;
sum = a+b;
if(a>0&&b>0&&sum<0) {
cout<<"Case #"<<i<<": true"<<"\n";
} else if(a<0&&b<0&&sum>=0) {
cout<<"Case #"<<i<<": false"<<"\n";
} else if(sum>c) {
cout<<"Case #"<<i<<": true"<<"\n";
} else {
cout<<"Case #"<<i<<": false"<<"\n";
}
}
return 0;
}
??正文结束??