杰瑞科技汇

有n个人围成一圈 顺序排号 java

Java实现n个人围成一圈顺序排号

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

有n个人围成一圈 顺序排号 java-图1
(图片来源网络,侵删)
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();
    }
}

您可以根据具体需求选择适合的实现方式,如果需要更复杂的功能,请告诉我具体的需求。

有n个人围成一圈 顺序排号 java-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇