一群人围坐成一圈玩报数的游戏。游戏规则是: 从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。 可是这些人都太聪明了,竟然没人犯错!请问同样聪明的你,当报数到 n 时,总击掌次数 c 是多少?
时间: 2023-04-21 08:02:54 浏览: 160
当报数到 n 时,总击掌次数 c 可以通过以下公式计算:
c = (n/7) * 2 + min(n\%7, 1) + (n/10) - (n/70)
其中,(n/7) * 2 表示 7 的倍数时的击掌次数,min(n\%7, 1) 表示个位数为 7 时的击掌次数(最多为 1 次),(n/10) 表示十位数为 7 时的击掌次数,(n/70) 表示既是 7 的倍数又是个位数为 7 的数时重复计算的次数,需要减去。
例如,当 n = 100 时,总击掌次数 c = (100/7) * 2 + min(100\%7, 1) + (100/10) - (100/70) = 28 + 1 + 10 - 1 = 38。
相关问题
一群人围坐成一圈玩报数的游戏。游戏规则是: 从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。 可是这些人都太聪明了,竟然没人犯错!请问同样聪明的你,当报数到 n 时,总击掌次数 c 是多少?
当报数到 n 时,总击掌次数 c 可以通过以下公式计算:
c = (n/7) * 2 + min(n\%7, 1) + (n/10) - (n/70)
其中,(n/7) * 2 表示 7 的倍数时的击掌次数,min(n\%7, 1) 表示个位数为 7 时的击掌次数(最多为 1 次),(n/10) 表示十位数为 7 时的击掌次数,(n/70) 表示既是 7 的倍数又是个位数为 7 的数时重复计算的次数,需要减去。
例如,当 n = 100 时,总击掌次数 c = (100/7) * 2 + min(100\%7, 1) + (100/10) - (100/70) = 28 + 1 + 10 - 1 = 38。
c++拍7游戏,很多人都玩过,现在我们的规则是这样的,N个人围坐一圈,编号分别是1-N,从编号为1的人开始依次报数(当然从1开始报数),凡是报到的数字含有7或是7的倍数的人退出游戏。 请你编程求出每一个退出游戏人的编号。
好的,这个问题可以用模拟的方法解决。我们可以使用一个数组 `is_out` 来记录每个人是否已经退出游戏,初始时所有人都没有退出游戏,因此可以将数组所有元素初始化为 `false`。然后我们可以使用一个变量 `count` 来记录当前报数的数字,初始时 `count` 的值为 1。接着我们进入一个循环,每次循环中,从编号为 1 的人开始,依次报数,如果当前报数的数字包含 7 或者是 7 的倍数,则将该人标记为已退出游戏,并输出该人的编号。最后我们找到下一个未退出游戏的人作为下一轮的起始人,继续进行报数,直到只剩下一个人未退出游戏为止。
下面是 C++ 代码实现:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n; // 输入总人数
vector<bool> is_out(n, false); // 记录每个人是否已退出游戏
int count = 1; // 当前报数的数字
int curr = 0; // 当前报数的人的编号
int remain = n; // 剩余未退出游戏的人数
while (remain > 1) { // 当剩余未退出游戏的人数大于1时继续游戏
if (!is_out[curr]) {
if (count % 7 == 0 || count % 10 == 7) { // 如果当前报数的数字包含7或者是7的倍数
is_out[curr] = true; // 标记该人已退出游戏
cout << curr + 1 << " "; // 输出该人的编号
remain--; // 剩余未退出游戏的人数减1
}
count++; // 报数加1
}
curr = (curr + 1) % n; // 找到下一个未退出游戏的人作为下一次报数的起始人
}
for (int i = 0; i < n; i++) { // 输出最后剩下的那个人
if (!is_out[i]) {
cout << i + 1 << endl;
}
}
return 0;
}
```
希望能够帮到你!
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)