将有500个小朋友排成一个圈。从第一个开始报数,在每轮中将报到3的小朋友淘汰。接着继续从1开始报数,在每轮中将报到3的小朋友淘汰。通过数组模拟计算最后剩下的孩子是谁。
发布时间
阅读量:
阅读量
**问题:
假设有500名儿童围成一个环形,从第一位开始依次报数,每当数到第三位时,该儿童将被淘汰,随后继续从1开始进行下一轮计数,重复此过程直至仅剩一名儿童。请利用数组结构模拟这一过程。**Java实现
public class Test{
public static void main(String[] args) throws Exception {
int OutNum = 0; //已退出的小朋友的个数
int cnt = 0; //小朋友数的数(1、2、3)
kid kids[] = new kid[500]; //创建500个小朋友
for(int i=0;i<500;i++)
{
kids[i] = new kid();
}
while(OutNum<499)
{
for(int i=0;i<500;i++)
{
if(kids[i].state==0) //只有状态为没退出的小朋友才能数数
{
cnt++; //数数
if(cnt==3) //判断数的是不是3
{
kids[i].
全部评论 (0)
还没有任何评论哟~
