题目描述
一群人围坐成一圈玩报数的游戏。
游戏规则是:从1开始报数,若遇到7的倍数或者任意位为7的数则击掌代替,若犯错则要受罚。
可是这些人都太聪明了,竟然没人犯错!
请问同样聪明的你,现在当报数到 n 时,击掌共次数是多少?
输入格式
整数n(0<n<=10^7)
输出格式
击掌次数
利用循环语句,遍历1~n区间,利用if判断是否为7的倍数或是任意位数是否为7,当条件满足时,计数器++。
代码
#include"stdio.h"
int main()
{
int n,a;
scanf("%d",&n);
int i,j=0,k=0;
for(i=1;i<=n;i++){ //外层循环 遍历1~n
if(i%7==0){ //判断i是否为7的倍数
k++;
}else{
a=i; //将i的值赋予a
while(a>0){ //内层循环 判断i的每一位是否为7
j=a%10;
if(j==7){
k++;
break;
}
a/=10;
}
}
}
printf("%d",k); //输出满足条件的数的个数
return 0;
}