1065 A+B and C (64bit) (20 分)大数 溢出

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

Given three integers A, B and C in [263​​,263​​], you are supposed to tell whether A+B>C.

Input Specification:

The first line of the input gives the positive number of test cases, T (10). Then T test cases follow, each consists of a single line containing three integers A, B and C, separated by single spaces.

Output Specification:

For each test case, output in one line Case #X: true if A+B>C, or Case #X: false otherwise, where X is the case number (starting from 1).

Sample Input:

3
1 2 3
2 3 4
9223372036854775807 -9223372036854775808 0

Sample Output:

Case #1: false
Case #2: true
Case #3: false
思路:
  a、b、c都是long long 范围内的,但是它们相加之后可能会超过范围。
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<set>
#include<cmath>
#include<climits>
using namespace std;



int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        long long a,b,c,x;
        cin>>a>>b>>c;
        x=a+b;
        if(a<0&&b<0&&x>=0)
            printf("Case #%d: false\n",i+1);
        else if(a>0&&b>0&&x<0)
            printf("Case #%d: true\n",i+1);
        else if(x>c)
            printf("Case #%d: true\n",i+1);
        else
            printf("Case #%d: false\n",i+1);
    }
    return 0;
}
 

猜你喜欢

转载自www.cnblogs.com/zhanghaijie/p/10335415.html