题目描述:
大家应该都会玩“锤子剪刀布”的游戏:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入描述:
输入第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

Java代码:

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Model a = new Model();Model b = new Model();int n = scanner.nextInt();for (int i = 0; i < n; i++) {char jia = scanner.next().charAt(0);char yi = scanner.next().charAt(0);check(a,b,jia,yi);}String mostA = "";String mostB = "";if (Math.max(a.map.get("B"),Math.max(a.map.get("C"),a.map.get("J"))) == a.map.get("B")){mostA = "B";}else if (Math.max(a.map.get("B"),Math.max(a.map.get("C"),a.map.get("J"))) == a.map.get("C")){mostA = "C";}else mostA = "J";if (Math.max(b.map.get("B"),Math.max(b.map.get("C"),b.map.get("J"))) == b.map.get("B")){mostB = "B";}else if (Math.max(b.map.get("B"),Math.max(b.map.get("C"),b.map.get("J"))) == b.map.get("C")){mostB = "C";}else mostB = "J";System.out.println(a.toString());System.out.println(b.toString());System.out.println(mostA + " " + mostB);scanner.close();}public static void check(Model a,Model b,char jia,char yi){if (jia == 'C'){switch (yi){case 'C': a.tie++;b.tie++;break;case 'J': a.win++;b.lose++;a.map.put("C",a.map.get("C")+1);break;case 'B': a.lose++;b.win++;b.map.put("B",b.map.get("B")+1);break;}}else if (jia == 'J'){switch (yi){case 'J': a.tie++;b.tie++;break;case 'B': a.win++;b.lose++;a.map.put("J",a.map.get("J")+1);break;case 'C': a.lose++;b.win++;b.map.put("C",b.map.get("C")+1);break;}}else {switch (yi){case 'B': a.tie++;b.tie++;break;case 'C': a.win++;b.lose++;a.map.put("B",a.map.get("B")+1);break;case 'J': a.lose++;b.win++;b.map.put("J",b.map.get("J")+1);break;}}}static class Model {int win = 0;int tie = 0;int lose = 0;Map<String,Integer> map = new HashMap<>();public Model() {this.map.put("C",0);this.map.put("J",0);this.map.put("B",0);}@Overridepublic String toString() {return win + " " + tie + " " + lose;}}}

Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。相关推荐

  1. 7-114 谁先倒 (15分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了

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

  2. L1-019 谁先倒 (15分) 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了

    L1-019 谁先倒 (15分) 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了 ...

  3. Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

    5.34(游戏:石头.剪刀.布)编程练习题3.17给出玩石头-剪刀-布游戏的程序.修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止 题目 题目概述 编程练习题3.17 破题 ...

  4. Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序

    *3.17(游戏:剪刀.石头.布)编写可以玩流行的剪刀-石头-布游戏的程序 题目 题目概述 运行示例 ***特别注意*** 破题 代码 题目 题目概述 *3.17(游戏:剪刀.石头.布)编写可以玩流行 ...

  5. 【作品资料库】scratch作品之和电脑玩石头剪刀纸小游戏

    今天我们分享的这个作品是和电脑玩石头剪刀纸小游戏(源码已经发到百度网盘永久会员群文件中,目录在): 少儿编程课堂 剪刀.石头.布又称"猜丁壳",古老而简单,这个游戏的主要目的是为了 ...

  6. Java黑皮书课后题第8章:***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中。谁先实现一行、一列或者一对角线上有4个相同颜色的棋子。

    ***8.20(游戏:四子连)两人玩游戏,轮流将有颜色的棋子放在一个六行七列的垂直悬挂网格中.谁先实现一行.一列或者一对角线上有4个相同颜色的棋子 题目 题目描述与运行示例 破题 代码 题目 题目描述 ...

  7. java演练 数组的逆序文字玩法 你是猪才怪

    java演练 数组的逆序文字玩法 你是猪才怪 视频 https://www.ixigua.com/6870379403545674247?logTag=fgsSVbgK-TlKqZyHDyjmo 代码 ...

  8. “正话反说”:A和B在玩一个游戏,两人轮流说一句话,这句话正读反读都一样,如adgda,谁先说错,谁出局,另一个人胜出。编写一个函数用于判断这句话是否符合要求,符合要求时,函数返回1,否则函数返回0

    "正话反说":A和B在玩一个游戏,两人轮流说一句话,这句话正读反读都一样,如adgda,谁先说错,谁出局,另一个人胜出. 编写一个函数用于判断这句话是否符合要求,符合要求时,函数返 ...

  9. java江湖壹_江湖壹怎么玩 江湖壹玩法攻略

    江湖壹玩法攻略: 1.新手村任务做完,铁匠送的武器装备上,任务过程打地痞流氓掉落的装备更新一下.出了新手村合川之后,找晋阳武师蜀州武师蜀州司空处分别送酒刷友好度到开放商店,不多送酒也别少送,毕竟买酒是 ...

最新文章

  1. Windows系统更新问题汇总(补充修改)
  2. SAP 批次管理(Batch management)
  3. 被讨厌的勇气--总结
  4. java实现 XSS攻击防护
  5. javascript基础系列:字符串的常用方法
  6. 深度学习-数学-第一篇-标量,向量,矩阵,张量
  7. 死磕 18 个 Java 8 的日期处理,工作必用!
  8. Java NIO 基础
  9. mysql角色附权和解除权限_MySql授权和撤销权限操作
  10. 超市商品购买与管理系统
  11. PHP泡泡龙源码,泡泡龙 游戏源码
  12. server2008 mysql数据库病毒_sql server 2008 数据库可疑的解决步骤
  13. 电大学前本计算机考试,2019最新电大学前儿童艺术教育(音乐)形成性考核册作业1-4答案【呕心沥血整理可直接打印.doc...
  14. Python 数据挖掘 | 第3章 使用 Pandas 数据分析
  15. 《互联网信息资源检索与利用》读书笔记
  16. 电子烟能破壳类四大天王“和大天壹”新物种么?
  17. 编译原理学习之:上下文无关文法(Context-free Grammar)和下推自动机(Push-down automata)
  18. 谷歌浏览器无法正常使用怎么办?Google浏览器无法正常使用的解决方法
  19. 浅谈GPU虚拟化技术(四)- GPU分片虚拟化
  20. 理解Spring Security中permitAll()和anonymous()的区别

热门文章

  1. JBoss AS7 JNDI和EJB 3.1命名更改
  2. QOTD:Java线程与Java堆空间
  3. 带有谓词的Java中的函数样式-第2部分
  4. 为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE
  5. 将状态机模式实现为流处理器
  6. mysql dump gtid_mysqldump命令详解 Part 3- 备份全库
  7. vue进行判断使用class_vue判断dom的class
  8. 驾驶证损毁、驾驶人信息变更的如何换证
  9. 电子计算机职业40201,天津滨海中等专业学校
  10. cacti不能实时刷新流量图_介绍一种编码帧内刷新算法