#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#define MaxSize 10
using namespace std;
void josephus(int n,int m)//一共n个人数到m的出列
{
int p[MaxSize];
int i,j,t;
for(i=0;i<n;i++){
p[i]=i+1;//构建初始序列(1,2,3,4.....)
}
t=0;//首次报数起始位置
cout<<"出列顺序:";
for(i=n;i>=1;i--){//i为每次循环还剩下的人数
t=(t+m-1)%i;
cout<<p[t];
for(j=t+1;j<=i-1;j++){
p[j-1]=p[j];
}
}
}
int main(){
cout<<"约瑟夫问题求解"<<endl;
cout<<"请输入元素个数:";
int n;
cin>>n;
cout<<"请输入第一个出圈位置:";
int m;
cin>>m;
josephus(n,m);
}