Input多組數據,每組數據輸入:好人和壞人的人數n(<=32767)、步長m(<=32767);Output對於每一組數據,輸出2n個大寫字母,‘G’表示好人,‘B’表示壞人,50個字母爲一行,不容許出現空白字符。相鄰數據間留有一空行。Sample Inputjava
2 3 2 4
Sample Outputspa
GBBG BGGB
思路: 能夠先處理獲得好人的下標,這樣就差個輸出;輸出注意,50個字母一行,最後還不換行須要特判一下;還要注意每組數據換行
代碼:
import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()){ int n=scan.nextInt(); int m=scan.nextInt(); ArrayList<Integer> v=new ArrayList<>(); for(int i=0;i<2*n;i++) v.add(i); //移除壞人,留下好人 int pos=0; while(v.size()>n){ pos=(pos+m-1)%v.size(); v.remove(pos); } //輸出 int k=0; for(int i=0;i<2*n;i++){ if(i>0 && i%50==0) System.out.println(); if(k<v.size() && v.get(k)==i){ k++; System.out.print('G'); } else System.out.print('B'); } System.out.println(); if(2*n%50!=0) System.out.println(); } } }