UVa 10935 解题报告
2017-07-06 13:49
302 查看
关于队列运用的一道简单题
PE 两次 注意·格式
#include <bits/stdc++.h>
using namespace std;
int main()
{
while(1){
int n;
cin >> n;
if(n==0)break;
queue<int> q;
for(int i=1;i<=n;i++){
q.push(i);
}
cout <<"Discarded cards:";
if(!q.empty()&&q.back()!=q.front()){
for(int i=1;i<n;i++){
cout <<" " << q.front();
if(i!=n-1)cout << ",";
q.pop();
int temp = q.front();
q.push(temp);
q.pop();
}
//cout << endl; 如果在这个地方换行 输入数据为 1 的时候格式错误
}
cout <<endl; // 在此处换行才AC
cout << "Remaining card: " << q.front() << endl;
}
return 0;
}
原题如下:
Given is an ordered deck of n cards numbered 1
to n with card 1 at the top and card n at the
bottom. The following operation is performed as
long as there are at least two cards in the deck:
Throw away the top card and move
the card that is now on the top of the
deck to the bottom of the deck.
Your task is to nd the sequence of discarded
cards and the last, remaining card.
Input
Each line of input (except the last) contains a
number n 50. The last line contains `0' and
this line should not be processed.
Output
For each number from the input produce two
lines of output. The rst line presents the se-
quence of discarded cards, the second line re-
ports the last remaining card. No line will have
leading or trailing spaces. See the sample for the
expected format.
Sample Input
7
19
10
6
0
Sample Output
Discarded cards: 1, 3, 5, 7, 4, 2
Remaining card: 6
Discarded cards: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 4, 8, 12, 16, 2, 10, 18, 14
Remaining card: 6
Discarded cards: 1, 3, 5, 7, 9, 2, 6, 10, 8
Remaining card: 4
Discarded cards: 1, 3, 5, 2, 6
Remaining card: 4
PE 两次 注意·格式
#include <bits/stdc++.h>
using namespace std;
int main()
{
while(1){
int n;
cin >> n;
if(n==0)break;
queue<int> q;
for(int i=1;i<=n;i++){
q.push(i);
}
cout <<"Discarded cards:";
if(!q.empty()&&q.back()!=q.front()){
for(int i=1;i<n;i++){
cout <<" " << q.front();
if(i!=n-1)cout << ",";
q.pop();
int temp = q.front();
q.push(temp);
q.pop();
}
//cout << endl; 如果在这个地方换行 输入数据为 1 的时候格式错误
}
cout <<endl; // 在此处换行才AC
cout << "Remaining card: " << q.front() << endl;
}
return 0;
}
原题如下:
Given is an ordered deck of n cards numbered 1
to n with card 1 at the top and card n at the
bottom. The following operation is performed as
long as there are at least two cards in the deck:
Throw away the top card and move
the card that is now on the top of the
deck to the bottom of the deck.
Your task is to nd the sequence of discarded
cards and the last, remaining card.
Input
Each line of input (except the last) contains a
number n 50. The last line contains `0' and
this line should not be processed.
Output
For each number from the input produce two
lines of output. The rst line presents the se-
quence of discarded cards, the second line re-
ports the last remaining card. No line will have
leading or trailing spaces. See the sample for the
expected format.
Sample Input
7
19
10
6
0
Sample Output
Discarded cards: 1, 3, 5, 7, 4, 2
Remaining card: 6
Discarded cards: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 4, 8, 12, 16, 2, 10, 18, 14
Remaining card: 6
Discarded cards: 1, 3, 5, 7, 9, 2, 6, 10, 8
Remaining card: 4
Discarded cards: 1, 3, 5, 2, 6
Remaining card: 4
相关文章推荐
- uva10935解题报告
- UVALive 6582 Magical GCD (数学+数据结构) -- 解题报告
- UVa 1121 Subsequence 解题报告(思维)
- UVA 10106 解题报告
- UVAlive 5869 Airport 解题报告
- Uva 11137 Ingenuous Cubrency 解题报告(递推)
- UVa 1467 Installations 解题报告(贪心)
- UVa 1555 Garland 解题报告(推导)
- UVA 1588 Kickdown & ACM/ICPC NEERC 2006 解题报告
- Uva 11645 - Bits 解题报告(递推+大数)
- UVALive 5797解题报告
- Uva 10497 - Sweet Child Makes Trouble 解题报告(递推+大数)
- uva548解题报告
- uva839解题报告
- 解题报告 UVA 272,10082, 457
- UVA 12589 Learning Vector 解题报告
- 【解题报告】UVALive 3938 线段树深入使用
- uva 1025 A Spy in the Metro 解题报告
- [解题报告]《算法竞赛入门经典》基础题Volume 0. Getting Started Uva10055 Uva10071 Uva10300 Uva458 Uva494 Uva490 Uva445 Uva488 Uva489 Uva694 Uva457
- 解题报告_Triangle Counting UVA - 11401_数学规律