UVA 10935

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<string>
#include<queue>
using namespace std;
int main(){
    int n,x,m;
    queue<int> q;
    while(scanf("%d",&n)==1&&n){
        for(int i=1;i<=n;i++)
            q.push(i);
        printf("Discarded cards:");
    while(!q.empty()){
        if(q.size()==1) break;
        if(q.size()==2)
            printf(" %d",q.front());
        else
             printf(" %d,",q.front());
        q.pop();
        q.push(q.front());
        q.pop();

    }
    printf("
");
    printf("Remaining card: %d
",q.front());
    q.pop();
}
  return 0;
}
原文地址:https://www.cnblogs.com/wintersong/p/5063272.html