有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
2015-10-25 09:58
471 查看
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)
{
}
}
[java] view
plaincopy
[java] view
plaincopy
[java] view
plaincopy
<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() + "号人");
}
}
}
/**
*
* @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)
{
}
}
[java] view
plaincopy
[java] view
plaincopy
[java] view
plaincopy
<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() + "号人");
}
}
}
相关文章推荐
- 知识总结5-6章
- “告别”硅时代?华为已经开始向石墨烯行动
- UI 炫技要不得!设计师别求花俏,简单明了才最重要
- JUnit4
- [LeetCode]40. Valid Palinadrome有效回文串
- 【小牛分享】- 3D标签云
- strings.xml使用方法
- 慢慢总结C语言一些常用函数
- Catalog和Schema
- 我使用的Linux命令
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下 的是原来第几号的那位。
- 高级学员:2015年10月24日作业
- iOS开发--手把手教你制作音乐播放器
- boost/config.hpp文件详解
- struts 下载中文名文件
- 01什么是ExtJs?
- 2015年10月23日作业
- html + CSS
- HDU 1242 Rescue (BFS+优先队列)
- 一年以后,我们还在