您的位置:首页 > 其它

报数游戏

2017-01-20 21:59 239 查看
    有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);

 boolean
add(E e)


          将指定元素添加到此向量的末尾。
 E
remove(int index)


          移除此向量中指定位置的元素。
题目基本思想呢是先移除一个,然后又在Vector后边加一个相同的,然后移除第二个,再加上第二个,到第三个的时候只移除,不添加。

public static void main(String[] args) {

Vector<String> a = new Vector<String>();    //试用泛型更加规范
for(int i=1; i<=10; i++)
{
a.add("第" + i + "个孩子");
}
for(;;)
{
if(a.size()==1) break;
for(int k=0; k<2; k++)
{
String j =  a.remove(0);    //remove方法返回被移除的对象
a.add(j);                   //将刚移除的对象再次加入
}
a.remove(0);
}
System.out.println(a);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: