PAT-剪刀石頭布

題目描述

大家應該都會玩“錘子剪刀布”的遊戲:

現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。

輸入描述:

輸入第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

代碼寫的複雜了一點,花的時間也較長。以後先在紙上列出需要實現的功能,後面一點點加上去可能有點麻煩。

當N爲1時,輸的一方沒有贏得最多的手勢。懶得加了

package 剪刀石頭布; import java.util.*; public class Main { public static void main(String args[]){ Scanner in = new Scanner(System.in); int n = in.nextInt(); String[][] list=new String[n][2]; int count1=0,count2=0,count3=0; int a=0,b=0,c=0; String str1 = null,str2 = null; for(int i = 0;i<n;i++){ for(int j=0;j<2;j++){ list[i][j] = in.next(); } if(list[i][0].equals(list[i][1])){ count2++; } else if(("J".equals(list[i][0])&&"B".equals(list[i][1])||"B".equals(list[i][0])&&"C".equals(list[i][1])||"C".equals(list[i][0])&&"J".equals(list[i][1]))){ count1++; if("J".equals(list[i][0]))a++; else if("B".equals(list[i][0]))b++; else c++; if(a>b&&a>c) str1="J"; if(b>a&&b>c) str1="B"; if(c>a&&c>b) str1="C"; } else { count3++; if("J".equals(list[i][1]))a++; else if("B".equals(list[i][1]))b++; else c++; if(a>b&&a>c) str2="J"; if(b>a&&b>c) str2="B"; if(c>a&&c>b) str2="C"; } } System.out.println(count1+" "+count2+" "+count3); System.out.println(count3+" "+count2+" "+count1); System.out.println(str1+" "+str2); } }

發佈了38 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章