clist.cpp

来自「我自己写的vc数据结构的作业」· C++ 代码 · 共 58 行

CPP
58
字号
/*
 * 约瑟夫问题
 * FileName:clist.cpp
*/

#include <iostream>
#include "clist.h"

using namespace std;

int main()
{
    int i;
    int n;
    int m;
    int nNumber;
    int nCurIndex;
	CList<int> clist;

	cout<<"约瑟夫问题求解:"<<endl;
	cout<<endl;
    cout << "请输入总的人数: ";
    cin >> n;

    cout << "请输入死亡号码: ";
    cin >> m;

    // 初始化序列号码列表:
    for (i = 1; i <= n; ++i)
    {
        clist.AddTail(i);
    }

    i = 0;
    do
    {
        ++i;
        nNumber = clist.GetNext();
        if (i == m)
        {
            cout << "第 " << nNumber << " 个人被吃掉了!" << endl;

            // 这个人倒霉了
            nCurIndex = clist.GetCurrentIndex();
            clist.RemoveAt(nCurIndex);
            --n;

            // 剩下的人重新开始报数
            i = 0;
        }
    } while (1 != n);

    cout << "最后活下来的是: " << clist.GetHead() << endl;

	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?