/*利用队列解题*/
//用数组实现的队列来解题
#include <stdio.h>
const int MAXN = 50;
int queue[MAXN];
int main()
{
int len = 0;
scanf("%d", &len);
for(int i = 0; i < len; ++i)
queue[i] = i + 1;
int front = 0;
int rear = len;
while(front < rear)
{
printf("%d", queue[front++]);
queue[rear++] = queue[front++];
printf("%c", front < rear ? ' ' : '\n');
}
return 0;
}
//用STL队列queue
#include <cstdio>
#include <queue>
using namespace std;
queue<int> q;
int main()
{
int len = 0;
scanf("%d", &len);
for(int i = 0; i < len; ++i)
q.push(i + 1);
while(!q.empty())
{
printf("%d%c", q.front(), q.size() == 1 ? '\n' : ' ');
q.pop();
if(!q.empty())
{
q.push(q.front());
q.pop();
}
}
return 0;
}
算法竞赛入门经典 6.1.1 卡片游戏
最新推荐文章于 2019-04-10 13:04:14 发布