1. 程式人生 > >JavaStudy——0091:剪刀石頭布

JavaStudy——0091:剪刀石頭布

總時間限制: 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(); } }