您的位置:首页 > 其它

UVA 10935 Throwing cards away I

2017-11-08 16:35 489 查看
题目大意:有n张牌 从第一张牌开始 从上向下依次编号为1~n。当至少还剩下俩张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。输入每行包含一个n,输出每次扔掉的牌以及最后剩下的牌

解题思路:暴力模拟

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
int n;
queue<int> que;
int main() {
while(cin >> n) {
if(n == 0)
break;
while(!que.empty()) {
que.pop();
}
for(int i = 1; i <= n; i++) {
que.push(i);
}
cout << "Discarded cards:";
int p = 0;
while(!que.empty()) {
int a = que.front();
que.pop();
if(que.empty()) {
cout << endl << "Remaining card: " << a << endl;
}
else {
if(p == 1) {
cout << ",";
}
cout << " " << a;
int b = que.front();
que.pop();
que.push(b);
}
p = 1;

}

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva