✅ 使用队列解决报数问题
This commit is contained in:
parent
7650e8edfb
commit
04fa87a8da
35
reporting-number/main.cc
Normal file
35
reporting-number/main.cc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#include <algorithm>
|
||||||
|
#include <iostream>
|
||||||
|
#include <queue>
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
|
int main() {
|
||||||
|
queue<int> q;
|
||||||
|
int X, Y, K;
|
||||||
|
cin >> X >> Y >> K;
|
||||||
|
for (int i = 1; i <= X + Y; i++) {
|
||||||
|
q.push(i);
|
||||||
|
}
|
||||||
|
int count = 0;
|
||||||
|
while (q.size() > X) {
|
||||||
|
count++;
|
||||||
|
if (count == K) {
|
||||||
|
q.pop();
|
||||||
|
count = 0;
|
||||||
|
} else {
|
||||||
|
auto pin = q.front();
|
||||||
|
q.pop();
|
||||||
|
q.push(pin);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
vector<int> v;
|
||||||
|
while (q.size() > 0) {
|
||||||
|
v.push_back(q.front());
|
||||||
|
q.pop();
|
||||||
|
}
|
||||||
|
sort(v.begin(), v.end());
|
||||||
|
for (int i = 0; i < v.size(); i++) {
|
||||||
|
printf("%d ", v[i]);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user