微信号
题目
小明刚认识了新同学小红,他想要小红的微信号,小红不想直接告诉他,所以给了小明一串加密了的数字,并且把解密规则告诉了小明。
解密规则是:首先删除第1个数,接着把第2个数放在这串数的最后面,再删除第3个数,并把第4个数放在这串数的最后面……直至只剩最后一个数,把最后一个数也删除。
按照删除的顺序,把这些数字连在一起就是小红的微信号。请你按照解密规则帮小明得到小红的微信号。
输入格式:
第一行包括一个正整数n(1 < n < 500),表示这串微信号的长度;
第二行包括n个数字,即加密的小红的微信号。
输出格式:
输出解密后的微信号,相邻数字之间有空格。
输入样例:
9
1 2 3 4 5 6 7 8 9
输出样例:
1 3 5 7 9 4 8 6 2
思路
本题不难,只要利用队列进行相应的操作,如把元素压入队列,把元素从队列中弹出,检查队首元素,等等等等。c++中关于直接使用队列(queue)的学习【头文件#include】
完整代码
#include
#include//要想创建队列需要包含这个头文件
using namespace std;
struct inf{//创建结构体
int data;
}num[505],temp;
int main()
{
int n,i,j,store[505];
queue Q;//创建一个名为Q的队列,<>中是队列元素的类型名
cin>>n;
for(i=1;i<=n;i++){
cin>>num[i].data;
Q.push(num[i]);//将元素逐一压入队列
}
i=1;
j=0;
while(!Q.empty()){
if(i%2!=0){
temp=Q.front();//复制队首元素
store[j++]=temp.data;
Q.pop();//弹出队首元素
}
else{
temp=Q.front();
Q.pop();
Q.push(temp);/