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

牛客网PAT题目——锤头剪刀布(Java)

2017-11-29 17:41 330 查看
题目详情见链接:

https://www.nowcoder.com/pat/6/problem/4044

思路:

分三种情况进行讨论

当甲乙平局时(甲乙分别出石头剪刀布)

当甲胜时

1)甲石头 乙剪刀

2)甲剪刀 乙布

3)甲布 乙石头

当乙胜时

1)甲石头 乙布

2)甲剪刀 乙石头

3)甲布 乙剪刀

定义一个4行3列的整型数组,第一行分别存甲胜平负的次数,第二行分别存甲获胜时出石头剪刀布的次数,相同的第三行存乙胜平负的次数,第四行存乙获胜时出石头剪刀布的次数。

思路简单但是写代码时有些复杂┭┮﹏┭┮

代码如下:

import java.util.Scanner;

public class Main{

public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int N=scanner.nextInt();           //双方交锋的次数
char[][] inf=new char
[2];
String temp="";

for(int i=0;i<N;i++) {             //记录双方交锋的信息
for(int j=0;j<2;j++) {
temp=scanner.next();
inf[i][j]=temp.charAt(0);
}
}

//第一行三列存甲胜负平的次数,第二行存甲获胜时石头剪刀布的次数
int[][] results=new int[4][3];

for(int i=0;i<inf.length;i++) {
//当甲乙平局的情况
if((inf[i][0]=='C'&&inf[i][1]=='C')||(inf[i][0]=='J'&&inf[i][1]=='J')||(inf[i][0]=='B'&&inf[i][1]=='B')) {
results[0][1]++;
results[2][1]++;
}

//当甲胜的情况
if((inf[i][0]=='C'&&inf[i][1]=='J')||(inf[i][0]=='J'&&inf[i][1]=='B')||(inf[i][0]=='B'&&inf[i][1]=='C')) {
results[0][0]++;        //甲胜次数加1
results[2][2]++;        //乙失败次数加1
if(inf[i][0]=='C')
results[1][0]++;    //甲获胜时出石头的次数
if(inf[i][0]=='J')
results[1][1]++;    //甲获胜时出剪刀的次数
if(inf[i][0]=='B')
results[1][2]++;    //甲获胜时出布的次数
}

//当乙胜的情况
if((inf[i][0]=='C'&&inf[i][1]=='B')||(inf[i][0]=='J'&&inf[i][1]=='C')||(inf[i][0]=='B'&&inf[i][1]=='J')) {
results[2][0]++;       //乙获胜次数加1
results[0][2]++;       //甲失败次数加1

if(inf[i][1]=='C')
results[3][0]++;    //乙获胜时出石头的次数
if(inf[i][1]=='J')
results[3][1]++;    //乙获胜时出剪刀的次数
if(inf[i][1]=='B')
results[3][2]++;    //乙获胜时出布的次数
}
}

System.out.println(results[0][0]+" "+results[0][1]+" "+results[0][2]);  //输出甲的胜平负次数
System.out.println(results[2][0]+" "+results[2][1]+" "+results[2][2]);

if(results[1][2]>=results[1][1] && results[1][2]>=results[1][0])
System.out.print("B ");
else if(results[1][0]>=results[1][1] && results[1][0]>=results[1][2])
System.out.print("C ");
else
System.out.print("J ");

if(results[3][2]>=results[3][1] && results[3][2]>=results[3][0])
System.out.println("B");
else if(results[3][0]>=results[3][1] && results[3][0]>=results[3][2])
System.out.println("C");
else
System.out.println("J");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: