題目描述
大家應該都會玩“錘子剪刀布”的遊戲: 現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。
輸入描述:
輸入第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); } }