経典第五章練習問題5-3 UVA 10935 Throwing cards away I(キューの簡単な応用)


タイトル:http://7xjob4.com1.z0.glb.clouddn.com/bc8f4a27cb57cafb184320d2484b0cda
簡単な行列シミュレーションです。以下はACコードです。
#include
#include
#include
#include
using namespace std;

int a[50];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        if(n==0)
        {
            continue;
        }
        if(n==1)
        {
            printf("Discarded cards:
"
); printf("Remaining card: 1
"
); continue; } queue<int>q; for(int i=1;i<=n;i++) { q.push(i); } int sum1=0,sum2; while(!q.empty()) { a[sum1++]=q.front(); q.pop(); if(!q.empty()) { int num=q.front(); q.pop(); if(!q.empty()) { q.push(num); } else { sum2=num; break; } } } printf("Discarded cards: 1"); for(int i=1;iprintf(", %d",a[i]); } printf("
"
); printf("Remaining card: %d
"
,sum2); } return 0; }