感觉这道题的做法有很多,当然,这道题很简单啦~~数组模拟、链表都是可行的办法,今天预习队列,突然觉得队列也是可以方便求解的(个人是有点弱~~初学者~~),废话不多说了,直接上代码。
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> q;
int n,p,m;
while(cin>>n>>p>>m&&n&&p&&m){
while(q.empty()==false)
q.pop();
for(int i=p;i<=n;i++)
q.push(i);
for(int i=1;i<p;i++)
q.push(i);
while(q.size()>1){
for(int i=0;i<m-1;i++){
int tmp=q.front();
q.pop();
q.push(tmp);
}
cout<<q.front()<<",";
q.pop();
}
cout<<q.front()<<endl;
}
system("pause");
return 0;
}