紫书 第五章 习题5-3
算法:暴力模拟。注意只有1张牌的情况也要考虑进去,但题目没有标识出来。注意输出格式。
AC代码(0 ms):
#include<cstdio>
#include<cstdlib>
#include<queue>
#pragma warning(disable:4996)
using namespace std;
queue<unsigned char>q;
int main() {
unsigned char n, exitfor;
for (;;) {
scanf("%hhu", &n); if (n == 0)break;
if (n == 1) { printf("Discarded cards:\nRemaining card: 1\n"); continue; }
while (q.empty() == false)q.pop();
for (unsigned char i = 1; i <= n; ++i)q.emplace(i);
printf("Discarded cards: "); exitfor = 0;
for (; exitfor == 0;) {
printf("%hhu", q.front()); q.pop(); q.emplace(q.front()); q.pop();
switch (q.size()) {
case 1:exitfor = 1; printf("\nRemaining card: %hhu\n", q.front()); continue;
default:printf(", ");
}
}
}
//system("pause");
return 0;
}