约瑟夫(Josephus)问题

//约瑟夫(Josephus)问题:有15我的排成一圈,并给他们1~15的编号。如今从1号开始报数,报数字4的人退出
//队列,余下的人从退出者下一个位置开始继续刚才的报数,直到整个队列只剩下一我的为止。请问这我的是几
//号?
//单向循环链表类的实现我会尽快发布
//本题的解决方法见左飞的教材;p169ios

#include"CirList.h"
#include<iostream>
using namespace std;
void main(){
 CirList<int>jos;spa

 for(int i=1;i<16;i++)
 {
  jos.AddTail(i);
 
 }
 jos.SetBegin();
 int length=jos.GetCount();
 for(int i=1;i<length;i++)
 {
  for(int j=0;j<3;j++)
   jos.GetNext();
  jos.RemoveThis();
 }
 cout<<jos.GetNext()<<endl;
}队列

相关文章
相关标签/搜索