[简单模拟]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 }