用Java中的队列编写解决约瑟夫环问题的代码
时间: 2024-05-10 17:16:17 浏览: 90
以下是使用Java中的队列解决约瑟夫环问题的示例代码:
```java
import java.util.LinkedList;
import java.util.Queue;
public class JosephusProblem {
public static void main(String[] args) {
int n = 7; // 总人数
int k = 3; // 报数到k出列
int m = 2; // 从第m个人开始报数
Queue<Integer> queue = new LinkedList<Integer>();
for (int i = 1; i <= n; i++) {
queue.offer(i); // 将人依次加入队列
}
int count = 0;
while (!queue.isEmpty()) {
int x = queue.poll(); // 取出队首的人
count++;
if (count >= m) { // 从第m个人开始报数
if (count % k == 0) { // 报数到k出列
System.out.print(x + " ");
} else {
queue.offer(x); // 将没出列的人再加入队尾
}
} else {
queue.offer(x); // 将没报数的人再加入队尾
}
}
}
}
```
输出结果为:3 6 2 7 5 1
阅读全文