#P1236. 翻牌游戏.填空题
翻牌游戏.填空题
题目描述
有 N 张写有数据的牌, 从上到下放成一堆,每次从上面取一张输出,再从上面取一张放回这堆牌的下面。重复这个过程,直到取完。问输出的结果是什么?
输入格式
第 1 行 1 个正整数:N,范围在 [1,100] 。
第 2 行: N 个整数,每个数范围在 [1,1000]。
输出格式
一行,N 个整数。
样例
4
6 9 7 8
6 7 9 8
解题思路分析
这些纸牌,有上下顺序。每次的操作是把最上面的一张拿出来输出,然后再把最上面的放在下面,这个过程,可以通过一个队列来模拟。队头就是最上面的那张,队尾就是最下面的那张。
程序填空
#include<bits/stdc++.h>
using namespace std;
int card[201]; //定义201是有原因的,因为要考虑到将牌从头部放到底部
int head,tail; // head 是队头指针, tail 是队尾指针
int main()
{
int n,i,t;
scanf("%d",&n);
head=0;
tail=0;
for(i=1;i<=n;i++)
{
scanf("%d",&t);
//入队列
填空(1) = t; ;
}
while( 填空(2) ) //说明了队列不是空的
{
printf("%d ",填空(3)); // 打印队头
填空(4); //队头的成员出列
//熟练之后,上面的 2 行代码可以合成 1 行
if(填空(2))
填空(5); //将队首赋值给队尾元素
}
return 0;
}
填空(1):{{ input(1) }}
填空(2):{{ input(2) }}
填空(3):{{ input(3) }}
填空(4):{{ input(4) }}
填空(5):{{ input(5) }}
相关
在以下作业中: