当前位置 : 主页 > 编程语言 > c++ >

1065 A+B and C (64bit) (20)(大数相加、正溢出、负溢出)

来源:互联网 收集:自由互联 发布时间:2021-06-23
正溢出:两个正数相加超过了该数据类型能表示的最大范围,结果为负数 负溢出:两个负数相加超过了该数据类型能表示的最小范围,结果为正数包括零 #include algorithm #include iostream

正溢出:两个正数相加超过了该数据类型能表示的最大范围,结果为负数

负溢出:两个负数相加超过了该数据类型能表示的最小范围,结果为正数包括零

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <vector>
using namespace std;
const int maxn = 0x3f3f3f3f;
typedef long long ll;
int main() {
    int t,k=0;
    ll a,b,c,sum;
    cin >>t;
    while(t--) {
        k++;
        cin >> a >> b >> c;
        sum = a + b;
        cout << "Case #" << k <<": " ;
        if(a > 0 && b > 0 && sum < 0) cout << "true" << endl;//如果A+B超过了longlong 那么一定大于C
        else if(a < 0 && b < 0 && sum >=0) cout << "false" << endl;//如果A+B超过了longlong最小值 那么一定小于C
        else if(sum > c) cout << "true" << endl;
        else  cout << "false" << endl;
    }
    return 0;
}
网友评论