有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; } } } }