约瑟夫环(Josephus)问题
2017-06-20 00:00
549 查看
N个人坐成一圈,并从第一个人开始报数,报到M的人会被杀死,直到最后一个人留下来。请输出人们被杀死的顺序。
坐成一圈肯定是个Queue。
public static void main(String[] args) {
// initialize the queue
Queue<Integer> queue = new Queue<Integer>();
for (int i = 1; i < N; i++)
queue.enqueue(i);
while (!queue.isEmpty()) {
for (int i = 1; i < M; i++)
queue.enqueue(queue.dequeue());
System.out.println(queue.dequeue() + " ");
}
}
这里需要注意下面的for循环。我们隔M个人就把前M个人在队列中取出,然后再放入队列。
这是一个老外给的答案。
坐成一圈肯定是个Queue。
public static void main(String[] args) {
// initialize the queue
Queue<Integer> queue = new Queue<Integer>();
for (int i = 1; i < N; i++)
queue.enqueue(i);
while (!queue.isEmpty()) {
for (int i = 1; i < M; i++)
queue.enqueue(queue.dequeue());
System.out.println(queue.dequeue() + " ");
}
}
这里需要注意下面的for循环。我们隔M个人就把前M个人在队列中取出,然后再放入队列。
这是一个老外给的答案。
相关文章推荐
- Josephus问题(约瑟夫环)
- 组合数学--约瑟夫环问题 Josephus
- Josephus Problem 约瑟夫环问题的讨论
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题(Josephus Problem)C程序实现
- 约瑟夫环问题(Josephus)
- 《算法》第一章——约瑟夫环(Josephus)问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题 Josephus
- 约瑟夫环问题(Josephus_problem)
- 约瑟夫环(Josephus)问题的C++算法模拟
- Josephus(约瑟夫环)问题
- Josephus(约瑟夫环问题)循环单链表c语句实现!
- [链表]约瑟夫环问题 Josephus
- 0010用顺序表实现约瑟夫环(Josephus)问题
- 约瑟夫环问题(josephus problem)详解
- Josephus again HDU - 3089 (约瑟夫环问题)
- 14.约瑟夫环问题[JosephusProblem]
- 约瑟夫环问题(Josephus) —— 循环单链表
- [算法解决]约瑟夫环问题 Josephus