【PAT乙级】A + B和C

  • 2019 年 11 月 8 日
  • 筆記

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42449444/article/details/84865945

题目描述:

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

输入描述:

输入第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;  }