Luoyoooo

与其感慨路难行,不如马上出发

[简单模拟]7-2 逢7击掌 (15分)

一群人围坐成一圈玩报数的游戏。

游戏规则是:从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。

可是这些人都太聪明了,竟然没人犯错!

请问同样聪明的你,现在当报数到 n 时,击掌共次数 c 是多少?

输入样例

21

输出样例

4

 

思路:按题目去做简单模拟会超时,优化一下代码;

           每70个数里会有16个数击掌,再判断剩下的;

 1 #include<iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int n, sum = 0;
 6     cin >> n;
 7     if (n >= 70)
 8     {
 9         sum = n / 70 * 16;
10     }
11     for (int i = 1; i <= n%70; i++)
12     {
13         if (i % 7 == 0 || i % 10 == 7)
14         {
15             sum++;
16         }
17     }
18     cout << sum;
19 }

 

posted @ 2020-02-04 16:51  Luoyoooo  阅读(680)  评论(0编辑  收藏  举报