PAT B1018 java(18分)

思路:

可以設置一個數組,存放甲以B,C,J贏的次數。

同樣可以設置一個數組,存放乙以B,C,J贏的次數。

然後甲win=乙Lose,甲lose=乙win。就可以只判斷甲的輸贏情況即可。

功能函數:

judge()用來判斷勝負的情況。maxIndex()用來返回最大索引,就是一個比較交換函數。

注意事項:我之前想用str.tocharArray()直接轉換成char的數組,然後傳到judge函數參數進行判斷,但不對,我一直不知道爲什麼。

只好換了函數,用str.charAt(0)獲取輸入的第一個字符。

代碼如下:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.util.*;

import java.math.*;

 

public class Main {

public int win_jia=0,ping_jia=0,lose_jia=0;

int win_yi=0,ping_yi=0,lose_yi=0;

int jiawin[]=new int[3]; // 存放 C,J,B 的次數

int yiwin[]=new int[3]; //存放 C,J,B的次數

 

char signs[]={'B','C','J'};


 

public void judge(char jia,char yi) {

if (jia == yi) {

ping_jia++;

ping_yi++;

}else if(jia=='C'&& yi=='J'){

win_jia++;

jiawin[1]++;

}else if(jia=='C'&& yi=='B'){

lose_jia++;

yiwin[0]++;

}else if(jia=='B'&& yi=='J'){

lose_jia++;

yiwin[2]++;

}else if(jia=='B'&& yi=='C'){

win_jia++;

jiawin[0]++;

}else if(jia=='J'&& yi=='C'){

lose_jia++;

yiwin[1]++;

}else if(jia=='J'&& yi=='B'){

win_jia++;

jiawin[2]++;

}

 

}

 

public void output(){

System.out.println(win_jia+" "+ping_jia+" "+lose_jia);

System.out.println(lose_jia+" "+ping_jia+" "+win_jia);

System.out.println(signs[maxIndex(jiawin)]+" "+signs[maxIndex(yiwin)]);


 

}

 

//返回最大索引

private int maxIndex(int num[]){

int index=0;

int max=num[0];

for(int i=0;i<3;i++){

if(max<num[i]){

max=num[i];

index=i;

}

}

return index;

}


 

public static void main(String args[]){

Scanner sc=new Scanner(System.in); //輸入數據

String str=sc.nextLine();

int n=Integer.parseInt(str);

Main b=new Main();

 

for(int i=0;i<n;i++){

char jia=sc.next().charAt(0);

char yi=sc.next().charAt(0);

b.judge(jia,yi);

}

b.output();

 

}//main

}//class

運行如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章