【c++|卡片游戏 (Throwing cards away I)(队列+模拟)】桌子上有n张牌,从第一张牌(即位于牌面的牌)开始,从上往下一次编号为1~n。当剩下两张牌多于两张时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。当还剩下一张牌的时候,停止操作。
输入每行包括一个n,输出每次扔掉的牌及最后剩下的牌。(n<=50)
这题的输出要注意:逗号后面有空格,冒号后面没有空格。
当n=1的时候,应该输出Discarded cards:(此处没有空格)Remaining card: 1(有空格)
#include
using namespace std;
int main()
{
int n;
queueq;
while(scanf("%d",&n)&&n)
{
bool f=1;
for(int i=1;
i<=n;
i++)
{
q.push(i);
}
printf("Discarded cards:");
while(q.size()!=1)
{
if(f)
{
printf(" "),f=0;
}
else
{
printf(", ");
}
printf("%d",q.front());
q.pop();
q.push(q.front());
q.pop();
}
printf("\nRemaining card: %d\n",q.front());
q.pop();
}
return 0;
}
推荐阅读
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- 【C】题目|【C语言】题集 of ⑥
- 单片机|自学单片机好找工作吗(会单片机能找什么工作?)
- 单片机|keil把源代码生成lib的方法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- c语言|C语言初期学习遇到的特殊点 【三子棋详解】【初学者福音,详细总结,复习能手】
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C#|C# 文件路径操作
- C# 接口实例
- 个人日记|K8s中Pod生命周期和重启策略