用Java写一个代码有M个人围成一圈,每人一个的编号(1.2.3.....M),从第一个人数起,报到N时这个人就出圈。再继续数,数到N时这个人又出圈。直到只剩下一个人为止,输出出圈人的顺序。M、N从键盘输入。
时间: 2024-05-13 20:20:31 浏览: 69
N个人围圈数数的Java算法
```java
import java.util.*;
public class Circle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入人数M:");
int m = input.nextInt();
System.out.print("请输入报数N:");
int n = input.nextInt();
List<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));
}
}
```
运行结果:
```
请输入人数M:10
请输入报数N:3
出圈人的编号:3
出圈人的编号:6
出圈人的编号:9
出圈人的编号:2
出圈人的编号:7
出圈人的编号:1
出圈人的编号:8
出圈人的编号:5
出圈人的编号:10
最后剩下的人的编号:4
```
阅读全文