您的位置:首页 > 其它

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。

2015-10-25 09:54 671 查看
package 有n个人围成一圈顺序排号从第一个人开始报数;

/**

*

* @author 何虎

*

*/

public class Person

{

private int id;

private Person prev;

private Person next;

public Person getPrev()

{

return prev;

}

public void setPrev(Person prev)

{

this.prev = prev;

}

public Person getNext()

{

return next;

}

public void setNext(Person next)

{

this.next = next;

}

public int getId()

{

return id;

}

public void setId(int id)

{

this.id = id;

}

/*

* 报数方法

*/

public void baoShu(Person person)

{

}

}

<pre name="code" class="java">package 有n个人围成一圈顺序排号从第一个人开始报数;

/**

*

* @author 何虎

*

*/

public class Report

{

static int k = 0; //标号,报数到三

static int life = 5; //多少个生存的人

static Person[] person = new Person[life];

public static void main(String[] args)

{

for(int i=0; i<life; i++) //初始化人数

{

Person per = new Person();

per.setId(i + 1);

person[i] = per;

}

while(life > 1) //报数

{

for(int i=0; i<life; i++)

{

if(life == 2) //人数不够标号强制通过,可以继续玩

{

k = 2;

}

if(k == 2) //报数到三死一个

{

for(int j=i; j<life-1; j++)

{

person[j] = person[j + 1];

}

life--; //生存的人减少一个

k = 0; //重新报数

}

k++;

}

}

for(int i=0; i<life; i++) //打印活着的人

{

System.out.println("最后活下来的人是原" + person[i].getId() + "号人");

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: