首页 > 编程语言 >PAT-basic-1018 锤子剪刀布 java

PAT-basic-1018 锤子剪刀布 java

时间:2023-02-18 15:45:55浏览次数:38  
标签:yi java jia ++ equals int 1018 && basic

一、题目

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

FigCJB.jpg

现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入格式:

输入第 1 行给出正整数 N(≤105),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。

输出格式:

输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔。第 3 行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有 1 个空格。如果解不唯一,则输出按字母序最小的解。

输入样例:

10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J

输出样例:

5 3 2
2 3 5
B B

二、解析


很细节(。。。容易晕)的题。要输出两组数,一个是最大获胜手势的次数,一个是甲乙总共的胜&平&负次数。注意一个细节:平局的手势是算赢的。用两个数组分别来存甲乙手势获胜的次数。再用三个额外的变量记录甲胜、平、负的次数,乙和甲明显是相反的。

三、代码


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int jia[] = new int[3];
        int yi[] = new int[3];
        int jiaWin = 0, jiaPing = 0, jiaLose = 0;
        for (int i = 0; i < n; i++) {
            String str[] = br.readLine().split("\\s+");
            String a = str[0];
            String b = str[1];
            if(a.equals("B") && b.equals("C")){
                jia[0]++;
                jiaWin++;
            } else if (a.equals("C") && b.equals("J")) {
                jia[1]++;
                jiaWin++;
            } else if (a.equals("J") && b.equals("B")) {
                jia[2]++;
                jiaWin++;
            } else if (b.equals("B") && a.equals("C")) {
                yi[0]++;
                jiaLose++;
            }else if (b.equals("C") && a.equals("J")) {
                yi[1]++;
                jiaLose++;
            }else if (b.equals("J") && a.equals("B")) {
                yi[2]++;
                jiaLose++;
            }else
                jiaPing++;
        }
        System.out.printf("%d %d %d\n", jiaWin, jiaPing, jiaLose);
        System.out.printf("%d %d %d\n", jiaLose, jiaPing, jiaWin);
        System.out.printf("%c %c", max(jia[0], jia[1], jia[2]),
                max(yi[0], yi[1], yi[2]));
    }
    public static char max(int b, int c, int j){
        if(b >= c && b >= j) return 'B';
        if(c > b && c >= j) return 'C';
        return 'J';
    }
}

 

标签:yi,java,jia,++,equals,int,1018,&&,basic
From: https://www.cnblogs.com/langweixianszu/p/17132775.html

相关文章

  • PAT-basic-1015 德才论 java c++
    一、题目宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而......
  • 【Java-01】java基础-基本语法
    1、基本输出语句/**java*多行注释*///java单行注释publicclass_01_HelloWorld{publicstaticvoidmain(String[]args){//main方法System.......
  • AcWing788.逆序对的数量(Java)
    题目来源:https://www.acwing.com/problem/content/790/题目描述给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第i个和第j......
  • IDEA修改Java注释字体颜色 - mac电脑 - 2023年2月
    先来看下成果: 先选中Preferences: 再选择Editor->Java->Comments->Blockcomment(多行注释)或者Linecomment(单行注释)  end.......
  • Java Web(三)HTML 和 CSS
    HTML和CSS什么是HTML?HTML是一门语言,所有的网页都是用HTML这门语言编写出来的HTML(HyperTextMarkupLanguage):超文本标记语言 超文本:超越了文本的限制,比普通文本更强大......
  • Java Web(四)JS
    JS什么是JavaScript?JavaScript是一门跨平台、面向对象的脚本语言,来控制网页行为的,它能使网页可交互W3C标准:网页主要由三部分组成结构:HTML表现:CSS行为:JavaScriptJavaScript......
  • Java基础知识点(方法)
    1.方法是程序中最小的执行单元。2.作用:能够提高代码的复用性,提高代码的可维护性(好处)重复代码、具有独立功能的代码可以抽取到方法中。3.方法的定义:把一些代码打包在一起。方......
  • PAT-basic-1014 福尔摩斯的约会 java
    一、题目大侦探福尔摩斯接到一张奇怪的字条:我们约会吧!3485djDkxh4hhGE2984akDfkkkkggEdsbs&hgsfdkd&Hyscvnm大侦探很快就明白了,字条上奇怪的乱码实际上就是约......
  • PAT-basic-1012 数字分类 java
    一、题目给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1​ =能被5整除的数字中所有偶数的和;A2​ =将被5除后余1的数字按给出顺序进行交......
  • 《阿里巴巴Java开发规范》领域模型的部分介绍
    《阿里巴巴Java开发规范》关于领域模型的部分介绍如下分层领域模型规约:DO(DataObject):此对象与数据库表结构一一对应,通过DAO层向上传输数据源对象。DTO(DataTran......