有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
凡是报到3的人退出圈子,问最后留下来的是原来第几号的那位。
import java.util.Arrays;
import java.util.Scanner;
public class Round {
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是3,
if(person[i]!=0) {
num++;
}
if(num==3) {
//并且当前数字不是0,就把当前数字变成0
if(person[i]!=0) {
person[i]=0;
num=0;
length--;
// System.out.println(Arrays.toString(person));
} else {
continue;
}
}
if(i==count-1) {
i=-1;
}
if(length==1) {
for(int j:person) {
if(j!=0) {
System.out.println("最后剩下的是"+j);
}
}
return;
}
}
}
}