【PAT乙级】A+B和C

正文索引 [隐藏]

题目描述:

给定区间[-2的31次方,2的31次方]内的3个整数A,B和C,请判断A + B是否大于C.
<h3输入描述:

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

输出描述:

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

输入样例:

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

输出样例:

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

解题思路:

首先看到这道题给定的区间是[-2的31次方,2的31次方],直接无脑用Python的。当然用C++也可以,不过要开long long,因为int会数据溢出。

PyAC代码:

for i in range(eval(input())):
    a,b,c=map(int,input().split())
    if a+b>c:
        print("Case #{}: true".format(i))
    else:
        print("Case #{}: false".format(i))

CppAC代码:

#include <bits/stdc++.h>
using namespace std;
#define Up(i,a,b) for(int i = a; i <= b; i++)
typedef long long ll;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int t;
    cin >> t;
    Up(i,1,t)
    {
        ll a,b,c;
        cin >> a >> b >> c;
        cout << "Case #" << i << ": ";
        if(a+b > c)
        {
            cout << "true" << endl;
        }
        else cout << "false" << endl;
    }
    return 0;
}