Java实现约瑟夫环
时间: 2023-01-28 07:15:03 浏览: 165
约瑟夫环(Josephus Problem)是一个著名的数学问题。
假设有 n 个人围成一圈,从第一个人开始报数,每次数到 m 的人会被杀死,直到最后剩下一个人。
下面是一个用 Java 语言实现约瑟夫环的示例代码:
```
import java.util.LinkedList;
public class JosephusProblem {
public static int lastRemaining(int n, int m) {
LinkedList<Integer> list = new LinkedList<>();
for (int i = 0; i < n; i++) {
list.add(i);
}
int index = 0;
while (list.size() > 1) {
index = (index + m - 1) % list.size();
list.remove(index);
}
return list.get(0);
}
public static void main(String[] args) {
int n = 41;
int m = 3;
System.out.println(lastRemaining(n, m)); // output: 31
}
}
```
在这段代码中,我们使用了 Java 的 LinkedList 类来表示环。每次从环中删除数到 m 的人,直到最后剩下一个人。
希望这对你有帮助!