📄 joseph.cpp
字号:
#include<stdlib.h>
#include<iostream>
using namespace std;
typedef struct LNode
{
int num,pwd;
struct LNode *next;
}LNode, *LinkList;
// 构造链表;
LinkList new_code(int a)
{
LinkList head,p,pt;
int i=1,j;//j为输入的密码
while(i<=a)
{
pt=new LNode;
if(i==1)
{
p=head=pt;
cout<<"请输入密码: ";
cin>>j;
p->num=i;
p->pwd=j;
i++;
}
else
{
p->next=pt;
p=pt;
cin>>j;
p->num=i;
p->pwd=j;
i++;
}
}
p->next=head;
return head;
}
//返回head;
void delete_code(int m,int n,LinkList head)
{
int a,i;
LinkList p,p_tmp;
p=head;
for(i=0;i<n;i++)
{
for(a=1;a<m;a++)
p=p->next;
cout<<p->num<<endl;
m=p->pwd;
p_tmp=p->next;
p->num=p_tmp->num;
p->pwd=p_tmp->pwd;
p->next=p_tmp->next;
delete p_tmp;
}
}
void main()
{
int m,n;//m为报数上限值,n为人数;
LinkList head;
do{
cout<<"请输入m:";
cin>>m;
while(m>30||m<=0)
{
cout<<"超出30,请重新输入";
cin>>m;
}
cout<<"请输入n:";
cin>>n;
head=new_code(n);
delete_code(m,n,head);
}while(m!=NULL);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -