堆栈实现约瑟夫环的c++代码
时间: 2023-11-26 13:07:54 浏览: 77
以下是使用堆栈实现约瑟夫环的C++代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
int main() {
int n, k;
cout << "请输入总人数和出圈数字:";
cin >> n >> k;
stack<int> s;
for (int i = n; i >= 1; i--) {
s.push(i);
}
int count = 1;
while (!s.empty()) {
int num = s.top();
s.pop();
if (count == k) {
cout << num << " ";
count = 1;
} else {
s.push(num);
count++;
}
}
return 0;
}
```
该程序首先使用堆栈将所有人按顺序压入,然后从堆栈中弹出每个人并计数,当计数等于出圈数字时,输出该人的编号,否则将该人重新压入堆栈。重复此过程直到堆栈为空。
阅读全文