您的位置:首页 > 编程语言 > Java开发

浙江大学PAT (Basic Level) Practice (中文)1018锤子剪刀布JAVA实现代码及分析

2019-03-25 21:12 369 查看

1018

锤子剪刀布


这道题我觉着只能一次一次判断和记录甲方和乙方出手的状态和胜负,最后按照题目要求的格式进行记录数据的输出。但是用JAVA写成我这个样子的话有一个测试点超时过不去
,这道题我也没用C++按照同样的逻辑再写一次,但是我觉着我这个逻辑上没什么问题,有大佬有更好的解法的话欢迎在评论区指点小生一下。

具体实现代码如下:

import java.util.Scanner;

public class Main{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);
int N;
int JC=0,JJ=0,JB=0;
int YC=0,YJ=0,YB=0;
int P=0,S=0;
N=input.nextInt();
String SS[][]=new String
[2];
for(int i=0;i<N;i++)
{
for(int j=0;j<2;j++)
{
SS[i][j]=input.next();
}
if(SS[i][0].equals(SS[i][1]))
{
P++;
continue;
}
else if(SS[i][0].equals("C")&&SS[i][1].equals("J"))
{
JC++;
}
else if(SS[i][0].equals("J")&&SS[i][1].equals("B"))
{
JJ++;
}
else if(SS[i][0].equals("B")&&SS[i][1].equals("C"))
{
JB++;
}
else if(SS[i][1].equals("C")&&SS[i][0].equals("J"))
{
YC++;
}
else if(SS[i][1].equals("J")&&SS[i][0].equals("B"))
{
YJ++;
}
else if(SS[i][1].equals("B")&&SS[i][0].equals("C"))
{
YB++;
}
}
S=JC+JJ+JB;
System.out.println(S+" "+P+" "+(N-S-P));
System.out.println((N-S-P)+" "+P+" "+S);
if(max(JJ,JB,JC)=='J')
{
System.out.print("J"+" ");
}
else if(max(JJ,JB,JC)=='B')
{
System.out.print("B"+" ");
}
else if(max(JJ,JB,JC)=='C')
{
System.out.print("C"+" ");
}
if(max(YJ,YB,YC)=='J')
{
System.out.print("J");
}
else if(max(YJ,YB,YC)=='B')
{
System.out.print("B");
}
else if(max(YJ,YB,YC)=='C')
{
System.out.print("C");
}
}
public static char max(int J,int B,int C)
{
if(J>B&&J>C)
{
return 'J';
}
else if(B>=J&&B>=C)
{
return 'B';
}
else if(C>=J&&C>B)
{
return 'C';
}
return 'a';
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: