题目是别人的,代码是别人那里抄了部分,自己写了部分
软件大赛题目----(第四个)选择
有10个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个
人继续从1报数,直到最后剩下一个孩子为止。问剩下第几个孩子。
代码如下:
package com.cs.games;
import java.util.LinkedList;
/**
* 软件大赛题目----(第四个)选择
* 有10个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个
人继续从1报数,直到最后剩下一个孩子为止。问剩下第几个孩子。
*
*
*/
public class GameFour {
public static void main(String[] args) {
LinkedList children = new LinkedList();
for(int i=1; i<=20;i++){
children.add(i);
}
int no=1;//数数,1到3,到3后再从1到3
int ind=0;//
int max=5;//数到多少时出列
while(true){
if(children.size()<=1){
System.out.println("最后剩下:"+children.get(0));
break;
}else{
if(ind>=children.size()){//先判断是否越界
ind=0;
}
if(no==max){//先判断是否到达一轮末尾
System.out.print(children.get(ind)+"出列");
children.remove(ind);
no=1;
System.out.println(",此时剩余的是:"+children);
}else{
System.out.println(children.get(ind));
no++;
ind++;
}
}
}
}
}