c++写一个程序规则是有n 个人依次围成一圈,从第1 个人开始报数,数到第m 个人出列,然后从出列的下一个人开始报数,数到第m 个人又出列,…,如此反复到所有的人全部出列为止。设n 个人的编号分别为1,2,…,n ,打印出列的顺序。
时间: 2024-09-16 08:02:23 浏览: 48
在C++中,我们可以使用循环和数组来模拟这个过程。这里是一个简单的示例程序,描述了如何按照规则打印每个人出列的顺序:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m; // 人数和报数次数
cout << "请输入人数 n 和报数次数 m:" << endl;
cin >> n >> m;
// 创建一个数组,存储每个人的编号
int* circle = new int[n];
for (int i = 0; i < n; ++i) {
circle[i] = i + 1;
}
while (n > 0) { // 当还有人时,继续循环
int current_pos = 0; // 当前报数的位置
do { // 循环直到有人出列
cout << "当前报数者: " << circle[current_pos] << endl;
current_pos = (current_pos + m - 1) % n; // 更新报数位置,m-1是因为索引是从0开始的
} while (circle[current_pos] != 1); // 报到第一个的人才出列,跳出循环
// 出列的人移除
delete[] circle; // 删除已经出列的元素
n--; // 人数减少
circle = new int[n]; // 重新创建新的数组
for (int i = 0; i < n; ++i) {
circle[i] = i + 1 + current_pos; // 新的起始位置是当前出列位置+1
}
}
return 0;
}
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20250102104920.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)