1065. A+B and C (64bit) (20)【逻辑】——PAT (Advanced Level) Practise

本文提供了一道编程题目1065.A+B>C的解答思路及AC代码示例。该题要求判断三个给定整数A、B、C是否满足A+B>C的条件,并通过逻辑判断避免了运算过程中的溢出问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目信息

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

时间限制100 ms
内存限制65536 kB
代码长度限制16000 B

Given three integers A, B and C in [-26^3, 26^3], 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的情况来规避运算溢出问题

AC代码

#include <cstdio>

int main()
{
    long long a, b, c;
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i){
        scanf("%lld%lld%lld", &a, &b, &c);
        bool flag = true;
        if (a >= 0 && b >= 0){
            if (c >= 0){
                flag = a > c - b;
            }
        }else{
            if ((a >= 0 && b < 0) || (a < 0 && b >= 0)){
                flag = a + b > c;
            }else{
                if (c >= 0){
                    flag = false;
                }else{
                    flag = a > c - b;
                }
            }
        }

        printf("Case #%d: %s\n", i, flag ? "true" : "false");
    }
    return 0;
}

个人游戏推广:
《10云方》与方块来次消除大战!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值