用Java写代码 有M个人围成一圈,每人一个的编号(1.2.3.....M),从第一个人数起,报到N时这个人就出圈。再继续数,数到N时这个人又出圈。直到只剩下一个人为止,输出出圈人的顺序。M、N从键盘输入
时间: 2024-06-03 14:07:05 浏览: 79
N个人围圈数数的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 count = 0;
int index = 0;
while (list.size() > 1) {
count++;
if (count == n) {
System.out.println(list.get(index) + "出圈");
list.remove(index);
count = 0;
index--;
}
index++;
if (index == list.size()) {
index = 0;
}
}
// 输出剩下的人
System.out.println("剩下的人是:" + list.get(0));
}
}
阅读全文