代码:
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int main()
{
int n;
while(cin>>n && n)
{
deque<int> q;
for(int i=1;i<=n;i++) //先把1-n放入双端队列中
q.push_back(i);
cout<<"Discarded cards:";
while(q.size()>1) //至少两个时
{
cout<<" "<<q.front();
if(q.size()>2) cout<<",";
q.pop_front(); //丢掉队首
q.push_back(q.front()); //新的队首放队尾
q.pop_front(); //新的队首丢掉
}
cout<<endl<<"Remaining card: "<<q.front()<<endl;
}
return 0;
}