分析:又是一个模拟队列的一个题,水题。
但是此题有一个巨坑,那便是测试数据n为1时,第一行只输出Discarded cards:(后面什么都没有),
还有就是注意输出的格式,每个数字前都有一个空格,最后一个数字后面什么都没有
但是此题有一个巨坑,那便是测试数据n为1时,第一行只输出Discarded cards:(后面什么都没有),
还有就是注意输出的格式,每个数字前都有一个空格,最后一个数字后面什么都没有
代码如下:
#include <cstdio>
int a[55];
int main()
{
int n;
while (scanf("%d",&n)==1&&n)
{
for (int i=0;i<n;i++)
a[i]=i+1;
int f=0,r=n-1;
if (n==1)
{
printf("Discarded cards:\n");
printf("Remaining card: %d\n",a[f]);
}
else
{
printf("Discarded cards: ");
while (f<r-1)
{
printf("%d, ",a[f++]);
a[++r]=a[f++];
}
printf("%d\n",a[f]);
printf("Remaining card: %d\n",a[r]);
}
}
return 0;
}
#include <cstdio>
int a[55];
int main()
{
int n;
while (scanf("%d",&n)==1&&n)
{
for (int i=0;i<n;i++)
a[i]=i+1;
int f=0,r=n-1;
if (n==1)
{
printf("Discarded cards:\n");
printf("Remaining card: %d\n",a[f]);
}
else
{
printf("Discarded cards: ");
while (f<r-1)
{
printf("%d, ",a[f++]);
a[++r]=a[f++];
}
printf("%d\n",a[f]);
printf("Remaining card: %d\n",a[r]);
}
}
return 0;
}