PAT

B1065 A+B and C (64bit) (大数溢出)

2020-01-27  本文已影响0人  Tsukinousag

B1065 A+B and C (64bit) (20分)

1.如果a>0,b>0,a+b溢出结果得到的却是个负值或0.

  1. 如果是负数相加向下溢出,得到的是正值或0

  2. 最后一种情况,就是不溢出,直接判断是否满足a+b>c。

//这题难受在我又用大数大法做了,但最后一个测试点过不去,考试的时候二十分的题代码量必然不会大,要注意!!!!

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string.h>
#include <cmath>
#include <math.h>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <stack>
#define lowbit(i)((i)&(-i))
using namespace std;
typedef long long ll;
const int MAX=21;
const int INF=0x3f3f3f3f;
const int MOD=1000000007;
const int SQR=633;
int main(){
    int N;
    ll a,b,c;
    while(cin>>N){
        for(int i=0;i<N;i++){
            bool equal = false;         
            cin>>a>>b>>c;
            long long add = a+b;
            if(a>0&&b>0&&add<=0) equal = true;
            else if(a<0&&b<0&&add>=0) equal = false;
            else if(add>c) equal = true;
            cout<<"Case #"<<i+1<<": ";
            cout<<(equal?"true":"false")<<endl;
        }
    }
    return 0;
} 
上一篇下一篇

猜你喜欢

热点阅读