用Java编程M个人围成一圈,每人一个的编号(1.2.3.....M),从第一个人数起,报到N时这个人就出圈。再继续数,数到N时这个人又出圈。直到只剩下一个人为止,输出出圈人的顺序。M、N从键盘输入。
时间: 2024-05-15 07:16:49 浏览: 79
```java
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入M:");
int m = scanner.nextInt();
System.out.print("请输入N:");
int n = scanner.nextInt();
// 初始化编号列表
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i <= m; i++) {
list.add(i);
}
// 开始数数
int index = 0; // 当前报数的人的索引
while (list.size() > 1) {
index = (index + n - 1) % list.size(); // 计算出圈的人的索引
System.out.println("第" + list.get(index) + "个人出圈");
list.remove(index);
}
// 输出剩余的人
System.out.println("最后剩下的人是第" + list.get(0) + "个人");
}
}
```
阅读全文