桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一章放到整叠牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌。
#include <stdio.h>
const int MAXN = 50;
int queue[MAXN];
int main()
{
int n,front,rear;
scanf("%d",&n);
for(int 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;
}
本文详细介绍了如何使用C语言实现一种针对牌堆的循环移除算法,通过逐步移除顶部的牌并将其放置到牌堆底部,直至牌堆中只剩余两牌为止,并输出被移除的每张牌以及最终剩余的牌。

被折叠的 条评论
为什么被折叠?



