桌上有一叠牌,从第一张牌(既位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌的时候进行以下操作:把第一张扔掉,然后把新的第一张放到整叠牌的后面。输入n,输出每次扔掉的牌,以及最后剩下的牌。
样例输入:
样例输出:1 3 5 7 4 2 6
#include<stdio.h>
const int MAXN=50;
int queue[MAXN];
int main()
{
int n,i,front,rear;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++) queue[i]=i+1;
front=0;
rear=n;
while(front<rear)
{
printf("%d",queue[front++]);
queue[rear++]=queue[front++];
}
}
return 0;
}