c++设计一个猴子出圈游戏。该游戏规则是:在n只猴子中要选大王
时间: 2023-06-05 22:47:09 浏览: 182
猴子出圈游戏是一种经典的游戏,其规则是在n只猴子中选出一只大王。游戏开始时,所有猴子围成一圈,从某只猴子开始依次报数,报到第m只猴子时,该猴子出圈,然后从下一只猴子开始重新报数,直到只剩下一只猴子为止,该猴子即为大王。
为了实现这个游戏,我们可以使用C++语言编写一个程序。首先,我们需要定义一个猴子类,包含猴子的编号、是否出圈等属性。然后,我们可以使用一个循环来模拟猴子报数的过程,每次报数时,判断该猴子是否已经出圈,如果没有出圈,则继续报数,直到报到第m只猴子,将该猴子出圈,并将下一个猴子作为起点重新开始报数。
最后,当只剩下一只猴子时,输出该猴子的编号,即为大王。
下面是一个简单的猴子出圈游戏的C++程序示例:
#include <iostream>
#include <vector>
using namespace std;
class Monkey {
public:
int id;
bool is_out;
Monkey(int i) {
id = i;
is_out = false;
}
};
int main() {
int n, m;
cout << "请输入猴子的数量n和报数的数字m:" << endl;
cin >> n >> m;
vector<Monkey> monkeys;
for (int i = 1; i <= n; i++) {
monkeys.push_back(Monkey(i));
}
int count = 0;
int index = 0;
while (count < n - 1) {
int i = 0;
while (i < m) {
if (!monkeys[index].is_out) {
i++;
}
index++;
if (index == n) {
index = 0;
}
}
monkeys[index - 1].is_out = true;
count++;
}
for (int i = 0; i < n; i++) {
if (!monkeys[i].is_out) {
cout << "大王是猴子" << monkeys[i].id << endl;
break;
}
}
return 0;
}
阅读全文