报数游戏

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

posted on 2013-05-03 09:40  wsxjbcy  阅读(300)  评论(0编辑  收藏  举报

导航