n个人围一圈,顺序排号,第一个人报数(只报1,2,3) 报到3的人出圈 求最后留下来的是第几号的那位

mac2025-11-03  15

import java.util.Scanner; class Demo_14 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //输入有几个人 System.out.println("输入有几个人:"); int n = sc.nextInt(); //创建一个数组,默认数组里全是0 int[] arr = new int[n]; //定义两个计数器 int c1 = 0; int c2 = n;//记录余下的人 int i=0; while(c2>1){ if(arr[i]==0){ c1++; } if(c1==3){ //将报到3的位置赋1 arr[i]=1; //将计数器清零,用于下次循环 c1 = 0; //每次报到3,出去一个人 c2--; } i++; //若指针超出数组索引范围,置为0,重新遍历数组 if(i == n){ i = 0; } } //遍历数组找到剩余的那个人 for(int j = 0;j<arr.length;j++){ if(arr[j]==0){ //数组从0开始,排号从1开始 System.out.println(j+1); } } } }

 

最新回复(0)