思路:
报数的时候,我们要考虑的情况有:
1、7的倍数
2、个位数是7的情况
3、二位数的时候,十位数是七的情况,
4、三位数时,十位数是七的情况,百位数是七的情况。(完全有可能百位数是七,n是指报的有效个数,不包含跳过的数)
当我们没跳过时,有效报数就加一,需要跳过时就不理。
代码如下:
#include<stdio.h>
int main()
{
int a=0,b=0,c=0,d=0,n,i=1,j=1;
scanf ("%d",&n);
while(i<=n)
{
if(j%7==0||j%10==7||j/10==7||j/10%10==7||j/100==7)
{
switch(j%4)
{
case 1:a++;
break;
case 2:b++;
break;
case 3:c++;
break;
case 0:d++;
break;
}
}
else
{
i++;
}
j++;
}
printf ("%d\n%d\n%d\n%d",a,b,c,d);
return 0;
}