有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);
题目不难,主要是要理解Vector以及Vector.add()与Vector.remove()方法:
- Vector是一个散列表,可以存放任何元素,它是有序的,可重复的,线程安全的。