import java.util.Scanner;
public class lianxi37 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请输入排成一圈的人数:");
int n = s.nextInt();
boolean[] arr = new boolean[n];
for(int i=0; i<arr.length; i++) {
arr[i] = true;
}
int leftCount = n;
int countNum = 0;
int index = 0;
while(leftCount > 1) {
if(arr[index] == true) {
countNum ++;
if(countNum == 3) {
countNum =0;
arr[index] = false;
leftCount --;
}
}
index ++;
if(index == n) {
index = 0;
}
}
for(int i=0; i<n; i++) {
if(arr[i] == true) {
System.out.println("原排在第"+(i+1)+"位的人留下了。");
}
}
}
}
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
最新推荐文章于 2026-04-28 07:25:16 发布
本文介绍了一个使用Java实现的简单算法练习案例——循环留人问题。通过输入人数,程序模拟报数过程,最终确定留下的人的位置。文章通过具体代码展示了如何使用数组记录每个人的状态,并运用循环逻辑完成报数直至只剩一人。
,凡报到3的人退出圈子,问最后留下的是原来第几号的那位。&spm=1001.2101.3001.5002&articleId=52840492&d=1&t=3&u=9a467ec0525c4ddfabae9b4fa3b1d75c)
2万+

被折叠的 条评论
为什么被折叠?



