约瑟夫环-循环单链表 https://blog.csdn.net/qq_46457493/article/details/124362034
约瑟夫环-顺序表
#include<iostream>
using namespace std;
class yue
{
public:
yue();
yue(int n);
~yue(){};
void k(int n,int m);
private:
int a[100];
};
yue::yue(int n)
{
try
{
if(n>100||n==0)throw"长度参数非法";
for(int d=0;d<n;d++)
a[d]=d+1;
}
catch(char*s){cout<<s<<endl;}
}
void yue::k(int n,int m)
{
try
{
if(m==0)throw"密码参数非法";
cout<<"出环顺序为: ";
int d=1,f=0;
for(;f!=n;)
for(int b=0;b<n;b++)
{
if(a[b]!=0)
{
if(d==m)
{cout<<a[b]<<" ";a[b]=0;d=0;f++;}
d++;
}
}
cout<<endl;
}
catch(char *s)
{
cout<<s<<endl;
}
}
int main()
{
int n,m;
cout<<"请输入约瑟夫环长度: ";
cin>>n;
cout<<"请输入密码: ";
cin>>m;
yue L(n);
L.k(n,m);
return 0;
}