package com.hjh;
public class lianbiao {
/**
* 链表,50个人围城一个圈,数到三的退出,求最后剩下的人是哪一个
* @param args
*/
public static void main(String[] args) {
//定义一个数组用来表示多少个人,并初始化为true(表示都在圈内)
boolean arr[] = new boolean[50];
for(int i=0;i<arr.length;i++) {
arr[i] = true;
}
//定义一个总人数
int count = arr.length;
//定义一个索引位置,表示当前在哪个位置
int index = 0;
//定义一个计数器,数到3的退出
int countNum = 0;
//定义一个变量表示当前是第几圈
//int jj=1;
System.out.println("一共有" + count + "个人围成一个圈!");
while(count>1) {
if(arr[index]==true) { //表示这个人还在圈内
countNum ++;
if(countNum == 3) { //如果数到3
countNum = 0;
arr[index] = false; //表示这个人退出
System.out.println("第" + (index+1) + "个退出!");
count --; //总人数减1
}
}
index ++;
if(index == arr.length) { //如果数到了最后一个人了,又回到第一个人开始重新数
index = 0;
}
}
for(int i=0;i<arr.length;i++) {
if(arr[i] == true) { //如果圈中有人标记为true说明是没有推出的人
System.out.println("最后剩下的 人的编号为:" + (i+1));
}
}
}
}
50个人围成一圈数数,数到3的人退出,求最后剩下的人的编号
最新推荐文章于 2022-04-25 08:33:11 发布