有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

tech2022-07-06  219

public static void main(String[] args) { //输入人数,并声明长度为人数的数组 Scanner input = new Scanner(System.in); System.out.println("请输入人数:"); int renCount = input.nextInt(); int rens[] = new int[renCount]; for (int i = 0; i < rens.length; i++) { rens[i] = i+1; } //定义两个变量 count(用于累加存储第三个人),index(循环索引) int count =0; int index =0; while(renCount>1) { //不是置零的,继续数数 if(rens[index]!=0) { count++; if(count==3) { //累加到3清零 count =0; //把数到3的置零 rens[index]=0; //人数减一,去掉一人 renCount--; } } index++; if(index==rens.length) { index = 0; } } for (int i = 0; i < rens.length; i++) { if(rens[i]!=0) { System.out.printf("原来排在第"+(i+1)+"个位置的人留下了。"); break; } } }
最新回复(0)