java 報數遊戲:有n個孩子站成一圈,從第一個孩子開始順時針方向報數,報到m的人出列

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class BaoShuGame { /**  報數遊戲  有n個孩子站成一圈,從第一個孩子開始順時針方向報數,報到3的人出列,下一我的繼續從1報數,  直到最後剩下一個孩子爲止。問剩下第幾個孩子。下面的程序以n(能夠本身輸入)個孩子爲例,報到m(能夠本身輸入)的出列。模擬了這個過程,    */  public static void main(String[] args) { // TODO Auto-generated method stub List list=new ArrayList<>(); Scanner scanner=new Scanner(System.in); System.out.print("請輸入人數:"); int n=scanner.nextInt(); System.out.print("請輸入報到m的出列(m):"); int m=scanner.nextInt(); //初始化list列表 for (int i = 1; i <=n; i++) { list.add(i); } numberOff(list, m); } public static void numberOff(List list,int m) { while (list.size()>1) { for (int i = 0; i < m-1; i++) { /** *  * remove(int index)用來清除集合中制定索引位置的對象,後面的元素自動所有向前移動 * void add(int index, E element) index - 要在其中插入指定元素處的索引    element - 要插入的元素 * index可省略 ,可是添加元素的時候,須要添加到已有數據的後面*/ list.add(list.remove(0)); } list.remove(0); } System.out.println("剩下最後一我的:"+list); } }