1. 程式人生 > >Java 小孩報數問題

Java 小孩報數問題

小孩報數問題:有N個小孩圍成一圈,給他們從1開始依次編號,現指定從第W個開始報數,報到第S個時,該小孩出列,然後從下一個小孩開始報數,仍是報到S個出列,如此重複下去,直到所有的小孩都出列(總人數不足S個時將迴圈報數),求小孩出列的順序。

package Work2;

import java.util.LinkedList;
import java.util.Scanner;

public class Baoshu {
	public static void main(String[] args)
	{
	     Scanner cin=new Scanner(System.in);
		 LinkedList<String> l= new LinkedList<String>();
		 int n=cin.nextInt();
	     cin.nextLine();//小孩子的個數
		 for(int i=1;i<=n;i++)//將每一個小孩子都新增到連結串列中

		 {
			 String s=cin.nextLine();
			 l.add(s);

		 }
		 char[] s=cin.next().toCharArray();
			 int m=s[0]-'0';

			 int T=s[2]-'0';

       		 int pos=m-1;

		      T--;//注意T要減1,因為當前孩子也要報數

		 while(l.size()!=0)

		 {

			 pos+=T;

			 pos=pos%l.size();

			System.out.println(l.get(pos));

			l.remove(pos);

		 }
         cin.close();	

 }
	

}