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;
}

原文地址:https://www.cnblogs.com/platero/p/1870027.html