- import java.util.ArrayList;
- import java.util.LinkedList;
- import java.util.List;
- //要求:有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新
- //开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- public class Test30 {
- public static void main(String[] args){
- //由于涉及到数组集合的增删,所以使用LinkedList效率更高一些
- List<Integer> list = new LinkedList<Integer>();
- for(int i = 1; i<=100; i++){
- list.add(i);
- }
- List<Integer> listOut = new ArrayList<Integer>();
- int num = 0;
- while(list.size() > 0){ //只要集合中还有元素,就继续进行判断
- num++;
- Integer remove= (Integer) list.remove(0);
- if(num==14)
- {
- listOut.add(remove); //把每次喊道14移走的元素都存入另外一个集合
- num=0;
- }
- }
- System.out.println(listOut); //打印移出队列中的元素
-
- }
- }
复制代码 不知道这道题要问的到底是什么?最后打印的集合中是移出队列的集合。大家是怎么想的啊??
|
|