/*
标题:报数游戏
内容:
有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)
在此向量的指定位置插入指定的元素。
*/