队列解决约瑟夫问题,昨天灵机一动想出来的,感觉还可以。
#include <iostream>
#include <queue>
using namespace std;
void yueSeFu(int n,int m)
{
int temp,i;
queue<int>Q;
cout<<"最开始的序列为"<<" ";
for(i=1;i<=n;i++){
cout<<i<<" ";
Q.push(i);
}
cout<<endl<<"出环的顺序为"<<" ";
while(!Q.empty()){
for(i=0;i<m-1;i++){
temp = Q.front();
Q.pop();
Q.push(temp);
}
cout<<Q.front()<<" ";
Q.pop();
}
}
int main()
{
int n,m;
cout<<"请输入环的总个数,以及出环的报数"<<endl;
cin>>n>>m;
yueSeFu(n,m);
}