约瑟夫环问题
2017-01-14 12:00
183 查看
n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。
当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。
当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。
#include <iostream> using namespace std; //最后剩下元素位置 int lastRemaining(int n, int m) { if (n < 1 || m < 1) { return -1; } int last = 0; for (int i = 2; i <= n; ++i) { last = (last + m) % i; } return last; }
相关文章推荐
- 约瑟夫环问题的C版本答案
- 约瑟夫环问题的程序
- 一个Java面试题(约瑟夫环问题)
- 约瑟夫环问题
- 约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题
- 求解约瑟夫环问题
- 分别用 数组和链表处理约瑟夫环问题
- [算法解决]约瑟夫环问题 Josephus
- 用个循环链表解决约瑟夫环问题
- 约瑟夫环问题的程序
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题
- C/C++面试之算法系列--约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题
- 约瑟夫环问题--java
- [c#算法和数据结构]约瑟夫环问题
- 关于约瑟夫环的问题 的通解
- 约瑟夫环问题单循环链表解法
- 一个Java面试题(约瑟夫环问题)
- 约瑟夫环问题(Josephus Problem)C程序实现
- 约瑟夫环问题