约瑟夫问题

来源:互联网 发布:西门子系统编程实例 编辑:程序博客网 时间:2024/05/06 19:57
void CTest::TestJoseph(){    CircleList<int> jobs;    for(int i=1; i<16; i++)    {        jobs.AddTail(i);    }    jobs.SetBegin();    // 最后留下1个人,也就是说要删除14个人    int len = jobs.GetCount();    for(int i=1; i<len; i++) // 要删除的人数    {        for(int j=0; j < 3; j++)// 报数        {            jobs.GetCurrentDataAndRemoveNext(); // 移动到下一个        }        // 找到要删除的结点        jobs.RemoveThis();    }    cout << jobs.GetCurrentDataAndRemoveNext() << endl;}