import java.util.LinkedList;
import java.util.Scanner;
public class Josephus {
public static void main(String[] args) {
// 创建一个 Scanner 对象来读取用户的输入
Scanner scanner = new Scanner(System.in);
// 提示用户输入约瑟夫环中的人数和报数值
System.out.print("请输入约瑟夫环中的人数:");
int n = scanner.nextInt();
System.out.print("请输入报数值:");
int m = scanner.nextInt();
// 创建一个链表来表示约瑟夫环
LinkedList<Integer> list = new LinkedList<>();
for (int i = 1; i <= n; i++) {
list.add(i);
}
// 定义一个指针,指向当前报数的人
int ptr = 0;
// 开始报数,每报数到 m 就将当前指针指向的人移除
while (list.size() > 1) {
ptr = (ptr + m - 1) % list.size();
list.remove(ptr);
}
// 打印最后留下的人的编号
System.out.println("最后留下的人的编号是:" + list.getFirst());
}
}