java实现1-20个人围成圈 报数123 删除3 打印出每轮删除的编号
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
``
原文地址: http://www.cveoy.top/t/topic/hr7f 著作权归作者所有。请勿转载和采集!