Sicily 1931 卡片游戏
简单的队列运用
代码
// source code of submission 467542, Zhongshan University Online Judge System
/*
Author: Plutoyang 2010-11-4
*/
#include <stdio.h>
#define MAXSIZE 100
int main()
{
int queue[MAXSIZE];
int t;
int n;
int exchange;
int front, rear;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
/* 特殊情况: 只有一张纸牌, 直接输出 */
if(n == 1)
{
printf("%d \n", n);
continue;
}
front = rear = 0;
/* 初始化队列 */
for(; rear < n; rear++)
{
queue[rear] = rear + 1;
}
rear--;
/* 开始纸牌游戏 */
while(front != rear - 1)
{
printf("%d ", queue[front++]);
exchange = queue[front++];
queue[++rear] = exchange;
}
printf("%d %d \n", queue[front], queue[rear]);
}
return 0;
}