Java实现n个人围成一圈顺序排号
以下是一个Java程序,实现n个人围成一圈并按顺序排号的功能:

import java.util.ArrayList;
import java.util.List;
public class CircleNumbering {
public static void main(String[] args) {
int n = 10; // 人数
List<Integer> circle = new ArrayList<>();
// 初始化圈子,添加1到n的编号
for (int i = 1; i <= n; i++) {
circle.add(i);
}
System.out.println("围成一圈的编号顺序:");
for (int number : circle) {
System.out.print(number + " ");
}
// 如果需要模拟某种游戏(如约瑟夫问题),可以在这里添加逻辑
// 每隔k-1个人淘汰第k个人
}
}
更完整的实现(包含约瑟夫问题模拟)
如果您想要实现类似约瑟夫问题(每隔k-1个人淘汰第k个人)的功能,可以这样扩展:
import java.util.ArrayList;
import java.util.List;
public class CircleNumbering {
public static void main(String[] args) {
int n = 10; // 总人数
int k = 3; // 数到k的人出列
List<Integer> circle = new ArrayList<>();
// 初始化圈子
for (int i = 1; i <= n; i++) {
circle.add(i);
}
System.out.println("初始圈子中的编号:");
System.out.println(circle);
int index = 0; // 从第一个人开始
while (circle.size() > 1) {
// 计算下一个要淘汰的人的位置
index = (index + k - 1) % circle.size();
System.out.println("淘汰的人是: " + circle.get(index));
circle.remove(index);
}
System.out.println("最后剩下的人是: " + circle.get(0));
}
}
简单的围圈排号(不涉及淘汰)
如果您只是简单地需要将n个人围成一圈并编号,可以这样实现:
import java.util.Scanner;
public class SimpleCircleNumbering {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入人数n: ");
int n = scanner.nextInt();
System.out.println("围成一圈的编号顺序:");
for (int i = 1; i <= n; i++) {
System.out.print(i + " ");
if (i % 10 == 0) { // 每10个换行
System.out.println();
}
}
scanner.close();
}
}
您可以根据具体需求选择适合的实现方式,如果需要更复杂的功能,请告诉我具体的需求。

