題目
給定三個數,如果前兩個數的和大於第三個個數就輸出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;
}