約瑟夫問題

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;

}


發佈了134 篇原創文章 · 獲贊 7 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章