酒桌游戏 Description n个人围成一个圆桌,按照顺时针的顺序1,2,...n进行编号;某一个人开始报一个数字,然后顺时针的下一个人会报数+1;当某个人报的数字含有7或是7的倍数时,这个人退出游戏,其他人接着报数!直到剩下一个人为止! Input 输入n,m,t;n代表人数,m代表开始报数的人的编号;t表示开始报数的人报出的数字是t; 然后接下来有n行,是这n个人的名字! Output 输出最后一个人的名字! Sample Input 5 3 20 liming wangze gongxiangjun wangming chenzhen Sample Output chenzhen
时间: 2024-03-06 22:47:33 浏览: 20
好的,这是一个简单的模拟题目,下面是使用C++实现的代码:
```
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
int n, m, t;
cin >> n >> m >> t;
// 输入名字并存储到vector中
vector<string> names(n);
for (int i = 0; i < n; i++) {
cin >> names[i];
}
// 初始化游戏参数
int count = 1; // 当前报数的数字
int pos = m - 1; // 当前报数的人的编号
while (names.size() > 1) {
if (count == t || count % 7 == 0) {
// 将当前报数的人移除
names.erase(names.begin() + pos);
pos %= names.size();
} else {
// 下一个人报数
pos++;
pos %= names.size();
}
count++;
}
// 输出最后剩下的人的名字
cout << names[0] << endl;
return 0;
}
```
这个程序首先读取输入的参数n、m、t以及每个人的名字,并将名字存储到一个vector中。然后,程序使用一个循环来模拟游戏的过程,每次循环判断当前报数的数字是否为t或者是否为7的倍数,如果是,就将当前报数的人移除;否则,就让下一个人报数。当只剩下一个人时,程序输出该人的名字即可。