设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序;要求用java实现
public static void getOutput(int n,int m){
List list=new ArrayList();
for(int i=1;i<=n;i++){
list.add((Integer)i);
}
int count=0;
for(int j=0;j<list.size();){
count++;
if(count%m==0){
System.out.println(list.get(0));
}
Integer temp1=(Integer)list.get(0);
for(int u=1;u<list.size();u++){
list.set(u-1, (Integer)list.get(u));
}
if(count%m!=0){
list.set(list.size()-1, temp1);
}
if(count%m==0){
list.remove(list.size()-1);
}
}
}