JavaStudy——0091:剪刀石頭布
阿新 • • 發佈:2018-11-19
總時間限制: 1000ms 記憶體限制: 65536kB
描述
石頭剪刀布是常見的猜拳遊戲。石頭勝剪刀,剪刀勝布,布勝石頭。如果兩個人出拳一樣,則不分勝負。
一天,小A和小B正好在玩石頭剪刀布。已知他們的出拳都是有周期性規律的,比如:“石頭-布-石頭-剪刀-石頭-布-石頭-剪刀……”,就是以“石頭-布-石頭-剪刀”為週期不斷迴圈的。請問,小A和小B比了N輪之後,誰贏的輪數多?
輸入
輸入包含三行。
第一行包含三個整數:N,NA,NB,分別表示比了N輪,小A出拳的週期長度,小B出拳的週期長度。0 < N,NA,NB < 100。
第二行包含NA個整數,表示小A出拳的規律。
第三行包含NB個整數,表示小B出拳的規律。
其中,0表示“石頭”,2表示“剪刀”,5表示“布”。相鄰兩個整數之間用單個空格隔開。
輸出
輸出一行,如果小A贏的輪數多,輸出A;如果小B贏的輪數多,輸出B;如果兩人打平,輸出draw。
樣例輸入
10 3 4
0 2 5
0 5 0 2
樣例輸出
A
Accepted程式碼
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int j=0,k=0,naj=0,nbj=0;
int n=in.nextInt();
int na=in.nextInt(),nb=in.nextInt();
int [] nac=new int[na];
int[] nbc=new int[nb];
for(int i=0;i<na;i++)
nac[i]=in.nextInt();
for(int i=0;i<nb;i++)
nbc[i]=in.nextInt();
for(int i=0;i<n;i++,k++,j++) {
if(j==na || k==nb) {
if(j==na) j=0;
if (k==nb) k=0;
}
if(nac[j]==0 && nbc[k]==2) naj++;
else if(nac[j]==2 && nbc[k]==0) nbj++;
else if(nac[j]==0 && nbc[k]==5) nbj++;
else if(nac[j]==5 && nbc[k]==0) naj++;
else if(nac[j]==5 && nbc[k]==2) nbj++;
else if(nac[j]==2 && nbc[k]==5) naj++;
}
if(naj>nbj) System.out.println("A");
else if(naj<nbj) System.out.println("B");
else if(naj==nbj) System.out.println("draw");
in.close();
}
}