Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
生活随笔
收集整理的這篇文章主要介紹了
Java锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述:
大家應該都會玩“錘子剪刀布”的游戲:現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,并且給出雙方分別出什么手勢的勝算最大。
輸入描述:
輸入第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锤子剪刀布大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux联网命令econf(linux
- 下一篇: 非科班Java尝试全国高校计算机能力挑战