PAT 乙级 1011.A+B 和 C C++/Java

题目来源

给定区间 [−] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。

输入格式:

输入第 1 行给出正整数 T (≤),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 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

分析:

考虑变量类型的取值范围,使用长整型

 

C++实现:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int T;
 7     cin >> T;
 8     long A, B, C;
 9     for (int i = 1; i <= T; ++i)
10     {
11         cin >> A >> B >> C;
12         if (A + B > C)
13         {
14             cout << "Case #" << i << ": true" << endl;
15         }
16         else
17         {
18             cout << "Case #" << i << ": false" << endl;
19         }
20     }
21     return 0;
22 }

 

Java实现:

 1 import java.util.Scanner;
 2 
 3 public class Main{
 4     public static void main(String[] args) {
 5         Scanner input = new Scanner(System.in);
 6         int T = input.nextInt();
 7         double[] a = new double[T];
 8         double[] b = new double[T];
 9         double[] c = new double[T];
10         for (int i = 0; i < T; i++) {
11             a[i] = input.nextDouble();
12             b[i] = input.nextDouble();
13             c[i] = input.nextDouble();
14         }
15         int j = 0;
16         for (int i = 0; i < T; i++) {
17             j = i + 1;
18             if (a[i] + b[i] > c[i]) {
19                 System.out.println("Case #" + j + ": true");
20             } else System.out.println("Case #" + j + ": false");
21         }
22     }
23 }

 

posted @ 2019-10-06 08:22  47的菠萝~  阅读(197)  评论(0编辑  收藏  举报