PAT乙级Java实现_1018 锤子剪刀布 (20) _附详细解题注释_18

PAT 1018 锤子剪刀布 (20分)(Java) 题目描述   大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:   现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式:   输入第 1 行给出正整数 N(≤10的5次方​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 ... 阅读详情

1018 锤子剪刀布 (20)(20 分)

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

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

输入格式:

输入第1行给出正整数N(<=10^5^),即双方交锋的次数。随后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
作者: CHEN, Yue
单位: PAT联盟
时间限制: 100ms
内存限制: 64MB
代码长度限制: 16KB

package pat_b;


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
//逻辑还是比较简单的
public class PAT_B_1018
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		String[] first  = in.readLine().split("\\s+");
		int n = Integer.valueOf(first[0]);//猜拳的次数
		
		int cntJiaJ = 0, cntJiaC = 0, cntJiaB = 0;//甲出剪刀、锤子、布赢的次数
		int cntYiJ = 0, cntYiC = 0, cntYiB = 0;//乙出剪刀、锤子、布赢的次数
		for(int i = 0; i < n; i++)//猜拳的次数
		{
			String[] input = in.readLine().split("\\s+");
			//通过甲乙的出拳情况判断谁赢,并更新甲/乙某种出拳赢的次数
			if(input[0].charAt(0) == 'J')
			{
				if(input[1].charAt(0) == 'J')
				{
					
				}
				else if(input[1].charAt(0) == 'C')
				{
					cntYiC++;
				}
				else if(input[1].charAt(0) == 'B')
				{	
					cntJiaJ++;
				}
			}
			else if(input[0].charAt(0) == 'C')
			{
				if(input[1].charAt(0) == 'J')
				{
					cntJiaC++;
				}
				else if(input[1].charAt(0) == 'C')
				{
					
				}
				else if(input[1].charAt(0) == 'B')
				{	
					cntYiB++;
				}
			}
			else if(input[0].charAt(0) == 'B')
			{
				if(input[1].charAt(0) == 'J')
				{
					cntYiJ++;
				}
				else if(input[1].charAt(0) == 'C')
				{
					cntJiaB++;
				}
				else if(input[1].charAt(0) == 'B')
				{	
				
				}
			}
		}
		
		int cntJia = cntJiaJ+cntJiaC+cntJiaB;//甲赢的次数
		int cntYi = cntYiJ+cntYiC+cntYiB;//乙赢的次数
		int cntHe = n - cntJia - cntYi;//和局的次数
		
		System.out.println(""+cntJia+" "+cntHe+" "+cntYi);
		System.out.println(""+cntYi+" "+cntHe+" "+cntJia);
		
		printMax(cntJiaJ,cntJiaC,cntJiaB);
		System.out.print(" ");
		printMax(cntYiJ,cntYiC,cntYiB);
		
	}
	
	public static void printMax(int cntJ, int cntC, int cntB)//通过甲/乙三种出拳手势赢的次数判断哪种手势赢的次数最多
	{
		if(cntB >= cntJ && cntB >= cntC)
			System.out.print("B");
		else if(cntC > cntB && cntC >= cntJ)
			System.out.print("C");
		else if(cntJ > cntB && cntJ > cntC)
			System.out.print("J");
	}
}



【SigmaStar SSC335系列】空片用Flash_Tool烧写 简介 本文主要讲新拿到的PCBA,板上spi nand flash还是空的,如何在这种情况下烧录固件,这里讲解用官方Flash_Tool烧写的方式。 但只讲一些注意的地方和坑,其它的官方文档里说的比较清楚,不多说。 准备 Flash_Tool烧写软件 编译打包好烧写镜像 串口烧录小板 ----- 这个是个坑,在官方文档里并没有提及,刚开始用的平时调试的USB转串口,怎么都没反应,一度不知烧写软件不对还是硬件有问题,最后通过厂家技术支持才得知,除了专门的Flash_Tool外,还要专门的串口烧录器 阅读详情

相关推荐

华为2024机考真题集合

2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以 2,所得的结果就是中位数。在实际考试中会随机抽三道题目进行考察,其中两道100分卷题和一道200分卷题,总共400分。幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个。3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。1.众数是指一组数据中出现次数量多的那个数,众数可以是多个。

qq_25360769的博客 5093

1018 锤子剪刀布

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以 1 个空格分隔

清风微醺的博客 322

VBA解决Excel批处理任务之:批量修改Sheet名称

针对需要批量处理大量的Sheet改名的场景,使用VBA是非常便捷的方式。 简单介绍几种方法: 1. 录制宏法: 录制宏是用Excel自带的工具把改名改成一个可以复制操作的动作。 这里选择录制,会弹出一个宏设置窗口: 这里设置好宏名称就好,然后确定就可以开始录制你的操作。操作完成之后,再进入到宏窗口点击结束录制: 这样就可以通过执行来运行了,运行方法: 1. 通过选择宏: ...

跬步至千里 1万+

PAT乙级 1018 锤子剪刀布 (20 分) Java 实现

PAT乙级 1018 锤子剪刀布 (20 分) Java 实现

A1sakaTaiga的博客 384

别再羡慕专业版!用这个批处理脚本,一键给Win11家庭版装上官方沙盒

本文详细介绍了如何通过批处理脚本在Windows 11家庭版上安装官方Windows沙盒(Windows Sandbox),无需复杂操作即可享受专业版功能。脚本自动激活系统内置组件,提供安全隔离的虚拟化环境,适用于软件测试、安全浏览等场景。

weixin_26757925的博客 495

Cadence IC5141保姆级教程:Bandgap电路四大仿真(稳定性/噪声/启动/PSRR)完整流程与调参心得

本文提供Cadence IC5141中Bandgap电路的四大仿真(稳定性仿真、噪声仿真、启动仿真、PSRR仿真)的完整流程与调参心得。从原理图检查到ADE L配置,详细解析各仿真步骤的关键参数设置与优化策略,帮助工程师高效完成电路设计与性能调优。

weixin_30399821的博客 1651

PAT 1018 锤子剪刀布(JAVA)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤105),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,...

qq_37774375的博客 549

PAT 1018 锤子剪刀布 (20 分) Java实现

https://github.com/salmon1802/PAT_B import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * @date 2021-8-11 - 21:57 * Created by Salmon */ public class Main1018 { public static void main(String[] args) th

Salmon1122的博客 298

杰理可视化SDK开发-杰理AC1123N芯片SDK开发笔记合集

该文档主要描述 AC112N开发相关的使用说明和注意事项,收集并持续更新开发调试过程中的相关疑问和解答,对SDK介绍文档做一个补充说明。写作人:李永奉,参考项目MD-026H; AC112N-SDK项目帮助文档在杰理开发者平台(JL DP)'帮助'处进入,如本文档有与后续帮助文档或工具注释说明冲突,以后者为标准。

李永奉的博客 181

【Bug已解决】Claude Team Plan 购买席位报错 Payment failed 解决方案

方案适用场景推荐指数检查账单历史状态排查的第一步⭐⭐⭐⭐⭐更换支付方式类型快速尝试是否能绕开问题⭐⭐⭐联系官方支持团队最终解决问题的正规渠道⭐⭐⭐⭐⭐临时过渡方案紧急用人需求的应急处理⭐⭐⭐关注官方修复进度确认属于系统性缺陷的场景⭐⭐⭐⭐Claude Team Plan 增购席位报的问题,社区反馈和实际排查表明很大概率属于平台计费系统在处理按比例分摊费用这类复杂计算链路时的系统性缺陷,而不是用户自身的支付信息填写有误。先排除自身账单历史是否存在异常。

一键难忘的博客 4183

1018 锤子剪刀布(20 分) java

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5​​),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 ...

深印我心的博客 1364

Python办公自动化 2.1开发环境搭建:PyCharm社区版配置Anaconda开发环境

本篇文章主要讲述了如何在windows主机上配置 PyCharm + Anaconda开发环境、以及了如何配置 PyQt界面开发环境,安装过程超级详细,初学者可以照着一步一步来!

超级大洋葱的博客 2584

PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)

题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序。题目原文:如果解不唯一,则输出按字母序最小的解。 注意input()中的getchar()不能省略 C /** * Score 20 * Run Time 25ms * @author wowpH * @versi...

wowpH 401

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

JAVA-1018. 锤子剪刀布 (20)

现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。输出格式:输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给

za30312的博客 1135

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PAT 1018 锤子剪刀布(20分)

题目描述: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 输入格式: 输入第 1 行给出正整数 N,即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。 输出格式: 输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字...

Xlling的博客 4206

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

1018 锤子剪刀布 (20分)(Java 题解)

1018 锤子剪刀布 (20分) 原题链接:传送门 一、题目: 输入样例 1: 10 C J J B C B B B B C C C C B J B B C J J 输出样例 1: 5 3 2 2 3 5 B B 二、解析: 思路:   先得出A赢的总次数和B赢的总次数,再得出AB所有手势中赢的最大值次数。按JCB顺序遍历一下找出最大(因为如果次数相同需要打印字母序小的,所以才需要按照...

长生的梦呓 1218

1018 锤子剪刀布 (20 分)

题目链接: https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 思路:比较简单的题,可分别用j[3],y[3]记录甲乙两人胜利时出的招,分别对应B,C,J;为什么是这个顺序,是因为题目中说了:“如果解不唯一,则输出按字母序最小的解。”为了方便处理,干脆就直接按照字母顺序排列了。再用ej[3]...

小糖同学的专栏 368

PAT-乙级题库划水体验(JAVA)-1018

1018 锤子剪刀布 (20分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​^5​​),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第...

qq_43215234的博客 425

1018 锤子剪刀布 (20 分) java

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤105),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方...

weixin_42256997的博客 368

PAT乙级 1018 锤子剪刀布 (JAVA)

1018 锤子剪刀布 (20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 ...

涩。 396

PAT B1018 java(18分)

思路: 可以设置一个数组,存放甲以B,C,J赢的次数。 同样可以设置一个数组,存放乙以B,C,J赢的次数。 然后甲win=乙Lose,甲lose=乙win。就可以只判断甲的输赢情况即可。 功能函数: judge()用来判断胜负的情况。maxIndex()用来返回最大索引,就是一个比较交换函数。 注意事项:我之前想用str.tocharArray()直接转换成char的数组,然后传到ju...

Saber_lyl的博客 311

PAT乙级——1018(模拟判胜负)

题目:锤子剪刀布 (20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10​5),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 ...

熊仙森滴Blog 924

1018 锤子剪刀布 (20)(20 分)

1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第1行给出正整数N(&lt;=10^5^),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布...

码奴生来就只知道前进 2753

1018 锤子剪刀布(20 分)

#include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;map&gt; using namespace std; char num[3] = { 'B','C','J' }; int a[3], b[3]; int n; int as, ap, af, bs, bp, bf; void show(int a[]) { int...

Dai 764

Java(详解) 1018 锤子剪刀布 (20 分)

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第 1 行给出正整数 N(≤10 ​5 ​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2...

NewGe6的博客 736
上一篇: PAT乙级Java实现_1017 A除以B (20) _附详细解题注释_17
下一篇: PAT乙级Java实现_1019 数字黑洞 (20) _附详细解题注释_19
coder__666
博客等级 码龄9年 42粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值