public class CircleDemo {
    public static void main(String[] args) {
        int n = 20; // 人数
        int m = 3; // 报数到几
        int count = 0; // 报数计数器
        int index = 0; // 当前位置
        List<Integer> list = new ArrayList<>(); // 用List模拟围成圈的人

        // 初始化人
        for (int i = 1; i <= n; i++) {
            list.add(i);
        }

        // 开始循环
        while (list.size() > 0) {
            count++;

            if (count % m == 0) {
                // 删除当前位置的人
                System.out.println("删除:" + list.get(index));
                list.remove(index);
                index--;
            }

            // 移动到下一个位置
            index++;
            if (index >= list.size()) {
                index = 0;
            }
        }
    }
}

输出结果:

删除:3
删除:6
删除:9
删除:12
删除:15
删除:18
删除:1
删除:5
删除:10
删除:14
删除:19
删除:7
删除:13
删除:2
删除:11
删除:4
删除:16
删除:8
删除:17
删除:20
``
java实现1-20个人围成圈 报数123 删除3 打印出每轮删除的编号

原文地址: http://www.cveoy.top/t/topic/hr7f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录