[伯俊]2161号2164号カード枚
質問する
カードがN枚あります.各カードには順番に1からNの番号が貼られており、1番札が一番上に、N番札が一番下に、順番にカードが置かれています.
カードが1枚残るまで、以下の動作を繰り返します.
2161番です。カード。
https://www.acmicpc.net/problem/2161
N(1≦N≦1000)が与えられた場合、廃棄されたカードを順番に出力し、最後に残ったカードを出力するプログラムを作成します.#include<iostream>
#include<queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n; // 최대 1천개
queue<int> q;
for (int i = 1; i <= n; i++)
q.push(i);
while (q.size() != 1) {
// 1. 맨 앞에 있는 카드 pop
cout << q.front() << " ";
q.pop();
// 2. 그 다음 맨 앞에 있는 카드를 맨 뒤로 push
int tmp = q.front();
q.pop();
q.push(tmp);
}
cout << q.front();
return 0;
}
2164番です。カード。
https://www.acmicpc.net/problem/2164
N(1≦N≦500000)が与えられた場合、最後に残ったカードを取得するためのプログラムを作成します.#include<iostream>
#include<queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n; // 최대 50만개
queue<int> q;
for (int i = 1; i <= n; i++)
q.push(i);
while (q.size() != 1) {
// 1. 맨 앞에 있는 카드 pop
//cout << q.front() << " ";
q.pop();
// 2. 그 다음 맨 앞에 있는 카드를 맨 뒤로 push
int tmp = q.front();
q.pop();
q.push(tmp);
}
cout << q.front();
return 0;
}
Reference
この問題について([伯俊]2161号2164号カード枚), 我々は、より多くの情報をここで見つけました
https://velog.io/@jxlhe46/백준-2164번.-카드2
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include<iostream>
#include<queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n; // 최대 1천개
queue<int> q;
for (int i = 1; i <= n; i++)
q.push(i);
while (q.size() != 1) {
// 1. 맨 앞에 있는 카드 pop
cout << q.front() << " ";
q.pop();
// 2. 그 다음 맨 앞에 있는 카드를 맨 뒤로 push
int tmp = q.front();
q.pop();
q.push(tmp);
}
cout << q.front();
return 0;
}
https://www.acmicpc.net/problem/2164
N(1≦N≦500000)が与えられた場合、最後に残ったカードを取得するためのプログラムを作成します.
#include<iostream>
#include<queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n; // 최대 50만개
queue<int> q;
for (int i = 1; i <= n; i++)
q.push(i);
while (q.size() != 1) {
// 1. 맨 앞에 있는 카드 pop
//cout << q.front() << " ";
q.pop();
// 2. 그 다음 맨 앞에 있는 카드를 맨 뒤로 push
int tmp = q.front();
q.pop();
q.push(tmp);
}
cout << q.front();
return 0;
}
Reference
この問題について([伯俊]2161号2164号カード枚), 我々は、より多くの情報をここで見つけました https://velog.io/@jxlhe46/백준-2164번.-카드2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol