#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) }}