题目描述
大家应该都会玩“锤子剪刀布”的游戏:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入描述:
输入第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
import java.util.Scanner;
public class Main {
int m = 0, n = 0, p = 0;
int b1,c1,j1;
int b2,c2,j2;
public Main() {
Scanner sca = new Scanner(System.in);
int num = sca.nextInt();
String arr[][] = new String[num][2];
for (int i = 0; i < num; i++) {
for (int j = 0; j < 2; j++) {
arr[i][j] = sca.next();
}
}
for (int i = 0; i < num; i++) {
win(arr[i][0],arr[i][1]);
}
System.out.println(m+" "+p+" "+n);
System.out.println(n+" "+p+" "+m);
num(b1,c1,j1);
System.out.print(" ");
num(b2,c2,j2);
}
public static void main(String[] args) {
new Main();
}
private void num(int b,int c,int j) {
if (b>=c&&b>=j) {
System.out.print("B");
} else if (c>=b&&c>=j) {
System.out.print("C");
} else {
System.out.print("J");
}
}
private void win(String a,String b) {
if (a.equals("C")&&b.equals("J")) {
m = m+1;
c1 = c1+1;
} else if (a.equals("J")&&b.equals("B")) {
m = m+1;
j1 = j1+1;
} else if (a.equals("B")&&b.equals("C")) {
m = m+1;
b1 = b1+1;
} else if (a.equals("J")&&b.equals("C")) {
n = n+1;
c2 = c2+1;
} else if (a.equals("B")&&b.equals("J")) {
n = n+1;
j2 = j2+1;
} else if (a.equals("C")&&b.equals("B")) {
n = n+1;
b2 = b2+1;
} else {
p = p+1;
}
}
}
写的比较啰嗦,但是我的脑子只允许我想成这样了,欢迎指教。