约瑟夫环 <list>

来源:互联网 发布:邯郸软件开发 编辑:程序博客网 时间:2024/05/22 05:48
#include <iostream>#include <list>using namespace  std;int Josephus(int n, int k, int m){list<int> ilist;int pos = 1;for (;pos <= n; pos ++){ilist.push_back(pos);}list<int>::iterator itor = ilist.begin();while (ilist.size() != 1){int start = k;while ((start != m )&& (ilist.size() != 1)){itor++;start--;if (itor == ilist.end()){itor = ilist.begin();}}itor = ilist.erase(itor);if (itor == ilist.end()){itor = ilist.begin();}}return *(ilist.begin());}int main(){
//5个人,第一个人报3,直到报1的人出列,依次循环,直到剩下的最后一个人。cout << Josephus(5,3,1);}

原创粉丝点击