【1065 20 溢出判断】 A+B and C (64bit)
传送门
题意
给定三个数 \(a,b,c\) 判断 \(a+b>c\) 是否成立
数据范围
\(a,b,c\in [-2^{63},2^{63}]\)
题解
- 根据溢出来进行判断
- 正数溢出:结果为 \(<0\) 的负数
- 负数溢出:结果为 \(\geq 0\) 的正数
long long的输入用scanf,不然可能有小的错误
Code
#include<bits/stdc++.h>
using namespace std;
#define ll long long
void solve(int x){
long long a,b,c; scanf("%lld%lld%lld",&a,&b,&c);
long long sum=a+b;
if(a > 0 && b > 0 && sum < 0) printf("Case #%d: true\n",x);
else if(a<0 && b<0 && sum>=0) printf("Case #%d: false\n",x);
else if(sum > c) printf("Case #%d: true\n",x);
else printf("Case #%d: false\n",x);
}
int main(){
int t; scanf("%d",&t);
for(int i=1;i<=t;i++) solve(i);
}

浙公网安备 33010602011771号