import java.util.Scanner;
/**
* 有n个人围成一圈,顺序排号,从第一个人开始报数(从1-3报数)
* 凡报到3的人,退出圈子,问最后留下的那位,是原来的第几号。
* @author jiaxutianhuo
*
*/
public class Saythird {
/**
* 2:2
* 3:2
* 4:1
* 5:4
* 7:4
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//用数组存储数据
// int[] person={1,2,0,4,5,6,7};
// {1,2,0,4,5,6,7}3
// {1,2,0,4,5,0,7}6
// {1,0,0,4,5,0,7}2
// {1,0,0,4,5,0,0}7
// {1,0,0,4,0,0,0}5
// {0,0,0,4,0,0,0}1
System.out.print("请输入人数");
Scanner sc=new Scanner(System.in);
int count=sc.nextInt();
int[] person=new int[count];
for(int i=0;i<count;i++) {
person[i]=i+1;
}
int num=0;
int length=count;
for(int i=0;i<count;i++) {
// num++;
//如果num是3,
if(person[i]!=0) {
num++;
}
if(num==3) {
//并且当前数字不是0,就把当前数字变成0
if(person[i]!=0) {
// System.out.println(person[i]);
person[i]=0;
num=0;
length--;
// System.out.println(Arrays.toString(person));
// System.out.println(i+1);
} else {
continue;
}
}
if(i==count-1) {
i=-1;
}
if(length==1) {
for(int j:person) {
if(j!=0) {
System.out.println("最后剩下的是"+j);
}
}
return;
}
}
}
}
有n个人围成一圈,顺序排号,从第一个人开始报数(从1-3报数) 凡报到3的人,退出圈子,问最后留下的那位,是原来的第几号。
最新推荐文章于 2022-03-31 22:56:54 发布