约瑟夫环java的LinkedList集合实现
时间: 2024-06-13 16:04:17 浏览: 18
约瑟夫环是一个经典的问题,可以使用Java中的LinkedList集合来实现。LinkedList是一个双向链表,可以方便地进行插入和删除操作。具体实现方法如下:
1. 创建一个LinkedList对象,用来存储参与游戏的人员编号。
2. 使用while循环,当LinkedList中还有人员时,进行游戏。
3. 使用remove()方法删除指定位置的人员,同时输出该人员的编号。
4. 将步长step重新赋值为m,表示从下一个人员开始数数。
下面是代码实现:
```
import java.util.LinkedList;
import java.util.List;
public class Josephus {
public static void main(String[] args) {
int n = 10; // 总人数
int m = 3; // 步长
int index = 0; // 当前位置
List<Integer> list = new LinkedList<>();
for (int i = 1; i <= n; i++) {
list.add(i);
}
while (list.size() > 0) {
index = (index + m - 1) % list.size();
System.out.println("出圈人的编号:" + list.remove(index));
}
}
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)