PAT 乙级 1046.划拳 C++/Java

题目来源

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。

下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。

输入格式:

输入第一行先给出一个正整数 N(≤ 100),随后 N 行,每行给出一轮划拳的记录,格式为:

甲喊 甲划 乙喊 乙划
 

其中是喊出的数字,是划出的数字,均为不超过 100 的正整数(两只手一起划)。

输出格式:

在一行中先后输出甲、乙两人喝酒的杯数,其间以一个空格分隔。

输入样例:

5
8 10 9 12
5 10 5 10
3 8 5 12
12 18 1 13
4 16 12 15
 

输出样例:

1 2

 

C++实现:

 1 #include <iostream>
 2 using namespace std;
 3 //1046:划拳
 4 int main() {
 5     int n;
 6     cin >> n;
 7     int a1, a2, b1, b2;
 8     int countA = 0, countB = 0;
 9     for (int i = 0; i < n; i++) {
10         cin >> a1 >> a2 >> b1 >> b2;
11         int sum = a1 + b1;
12         if (a2 == b2) {
13             continue;
14         }
15         else if (a2 == sum) {
16             countB++;
17         }
18         else if (b2 == sum) {
19             countA++;
20         }
21     }
22     cout << countA << " " << countB;
23     return 0;
24 }

 

 

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 n = input.nextInt();
 7         int[] A = new int[n];
 8         int[] a = new int[n];
 9         int[] B = new int[n];
10         int[] b = new int[n];
11         int[] sum = new int[n];
12         for (int i = 0; i < n; i++) {
13             A[i] = input.nextInt();
14             a[i] = input.nextInt();
15             B[i] = input.nextInt();
16             b[i] = input.nextInt();
17             sum[i] = A[i] + B[i];
18         }
19         int c1 = 0;
20         int c2 = 0;
21         for (int i = 0; i < n; i++) {
22             if (a[i] == b[i]) {
23                 continue;
24             } else if (sum[i] == a[i]) {
25                 c2++;
26             } else if (sum[i] == b[i]) {
27                 c1++;
28             }
29         }
30         System.out.println(c1 + " " + c2);
31     }
32 }

 

posted @ 2021-04-09 17:03  47的菠萝~  阅读(61)  评论(0编辑  收藏  举报