PAT Basic 1011. A+B 和 C

PAT Basic 1011. A+B 和 C

1. 题目描述:

给定区间 [\(−2^{31},2^{31}\)] 内的 3 个整数\(A\)\(B\) 和 \(C\),请判断 \(A+B\) 是否大于 \(C\)

2. 输入格式:

输入第 1 行给出正整数 \(T\) (\(≤10\)),是测试用例的个数。随后给出 \(T\) 组测试用例,每组占一行,顺序给出 \(A\)\(B\) 和 \(C\)。整数间以空格分隔。

3. 输出格式:

对每组测试用例,在一行中输出 Case #X: true 如果 \(A+B>C\),否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。

4. 输入样例:

4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

5. 输出样例:

Case #1: false
Case #2: true
Case #3: true
Case #4: false

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

主要考察整数数据类型的使用,这里题目描述给出了上下限\(\pm 2^{31}\),因为涉及到两数相加,所以最终的上下限为\(\pm2^{32}\),至少需要33个数据位和1个符号位。这里PAT的判题系统运行在linux上,其long类型占8个字节,共64位已经满足需求了。

My Code:

#include <stdio.h>

int main(void)
{
    int count = 0;
    //long long int _A, _B, _C;
    long int _A, _B, _C;
    
    scanf("%d", &count);
    
    for(int i = 1; i <= count; i++)
    {
        //scanf("%lld%lld%lld", &_A, &_B, &_C);
        scanf("%ld%ld%ld", &_A, &_B, &_C);
        printf("Case #%d: %s\n", i, (_A+_B>_C? "true" : "false"));
    }

    return 0;
}
posted @ 2023-03-07 10:49  十豆加日月  阅读(8)  评论(0编辑  收藏  举报