📄 josephus1.cpp
字号:
#include "CirList1.h"
/*
template<class T>
void Josephus(CirList<T> &CList, int n, int m)
{
ListNode<T> *p;
cout<<"删除次序依次为:"<<endl;
CList.Reset(-1); //使当前结点为头结点
for(int i=0; i<n-1; i++)
{
for(int j=0; j<m-1; j++) //寻找第m个人
{
p=CList.Next();
if(CList.EndOfList()) p=CList.Next(); //越过头结点
}
if(CList.NextEndOfList()) p=CList.Next(); //排除头结点
cout<<"删除第"<<CList.DeleteAfter()<<"人"<<endl; //删除之
}
cout<<"最后剩下的是:第"<<CList.GetData(0)<<"个人"<<endl;
return;
}
*/
void main(void)
{
CirList<int> myCirList; //建立一个空单循环链表
int n,m;
cout<<"输入总人数 n:";
cin>>n;
cout<<"输入计数间隔 m:";
cin>>m;
for(int i=0; i<n; i++) myCirList.Insert(i+1,i);//插入n个元素
cout<<"人员编号次序为:";
myCirList.Reset();//当前指针指向第一个元素
while(!myCirList.EndOfList()) //当未到表尾时,反复做
{
cout<<myCirList.GetData()<<" "; //输出p所指的元素
myCirList.Next(); //当前指针下移。
}
cout<<endl;
cout<<"游戏开始:循环数数,每数到m则出队这人(删除)"<<endl;
myCirList.Josephus1(m);
cout<<"最后剩下的是:第"<<myCirList.GetData(0)<<"个人"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -