题目描述:
一群人围坐成一圈玩报数的游戏。
游戏规则是:从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。
可是这些人都太聪明了,竟然没人犯错!
请问同样聪明的你,现在当报数到 n 时,击掌共次数 c 是多少?
输入格式:
21
输出格式:
4
#include<stdio.h>
int main()
{
int n,cnt=0;
int sum=0;
scanf("%d",&n);
if(n>=70)
{
sum=n/70*16;
cnt+=sum;
}
for(int i=1;i<=n%70;i++)
{
if(i%7==0||i%10==7)
{
cnt++;
}
}
printf("%d",cnt);
return 0;
}
分析思路:判断n是否大于70,以70为周期,计算相应的个数,计算剩下n%70的数字中,是否满足题意输出满足题意的个数 。
题目要求统计个位数是7或者被7整除的数字,那么可以得到以下规律,以70为一个周期,就会有16个满足题意,如果无法被70整除的数字,在将其余数,来穷举判断是否满足要求。