有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
import java.util.*;
public class eleventh {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入总人数:");
int n=input.nextInt();
boolean[] arr=new boolean[n];
for(int i=0;i<arr.length;i++){
arr[i]=true;//下标为true说明还在圈内
}
int leftCount=n;//圈里剩下的人数
int countNum=0;
int index=0;
while(leftCount>1){
if(arr[index]==true){//当在圈里时
countNum++;//报数递加
if(countNum==3){//报数为3时
countNum=0;//从0开始继续报数
arr[index]=false;//此人退出圈子
leftCount--;//剩余人递减
}
}
index++;//每报一次数,下标加1
if(index==n){//当下标大于n时,说明已经数了一圈
index=0;//将下标设为0重新开始
}
}
System.out.print("最后剩下的是原来的第");
for(int i=0;i<n;i++){
if(arr[i]==true){
System.out.println(i+1+"位");
}
}
}
}
本文标题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
本文链接:https://www.haomeiwen.com/subject/obtqrxtx.html
网友评论