您的位置:首页 > 编程语言 > C语言/C++

Pat(Advanced Level)Practice--1065(A+B and C (64bit))

2014-02-28 15:49 459 查看

Pat1065 代码

题目描述:

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


AC代码:
#include<cstdio>

using namespace std;

int main(int argc,char *argv[])
{
long long A,B,C;
int T;
int count=1;
scanf("%d",&T);
while(T--)
{
scanf("%lld%lld%lld",&A,&B,&C);
long long temp;
temp=A+B;
if(A>0&&B>0&&temp<=0)//up overflow 64th bit is 1 bigger than 2^63-1
printf("Case #%d: true\n",count);
else if(A<0&&B<0&&temp>=0)//down overflow 64th bit is 0 sum is
printf("Case #%d: false\n",count);//-(num+temp) of them num>2^63
else
{
if(A+B>C)
printf("Case #%d: true\n",count);
else
printf("Case #%d: false\n",count);
}
count++;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Advance Pat C++ 基础题