/*
标题:报数游戏 内容: 有n个孩子站成一圈,从第一个孩子开始顺时针方向报数,报到3的人出列,下一个人继续从1报数, 直到最后剩下一个孩子为止。问剩下第几个孩子。下面的程序以10个孩子为例,模拟了这个过程, 请完善之(提示:报数的过程被与之逻辑等价的更容易操作的过程所代替)。Vector a = new Vector();
for(int i=1; i<=10; i++) { a.add("第" + i + "个孩子"); } for(;;) { if(a.size()==1) break; for(int k=0; k<2; k++) ________________; a.remove(0); } System.out.println(a); */1 import java.util.Vector; 2 class pro01 { 3 public static void main (String[] args){ 4 Vector a = new Vector(); 5 for(int i=1; i<=10; i++) 6 { 7 a.add("第" + i + "个孩子"); 8 } 9 for(;;)10 {11 if(a.size()==1) break;12 for(int k=0; k<2; k++)13 a.add(a.remove(0));//每次从头数两个人,把他们放到尾部,然后下一个人被remove掉,14 a.remove(0);15 }16 System.out.println(a);17 }18 }
/*
E remove(int index) 移除此向量中指定位置的元素。 boolean remove(Object o) 移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。 boolean add(E o) 将指定元素追加到此向量的末尾。 void add(int index, E element) 在此向量的指定位置插入指定的元素。 */