解题思路:

注意事项:

参考代码:

#include

int main()

{int num1(int m);

int num2(int m);//函数声明

int num3(int m);

int n,a=0,b=0;

scanf("%d",&n);

a=num1(n)+num2(n)+num3(n);

printf("%d",a);

}

int num1(int m)

{int i=1,j=0;

for(;i*7<=m;i++)

j++;//7的倍数

return j;

}

int num2(int m)

{int i,j=0;

for(i=7;i<=m;)

{if(i%7!=0)

{j++;//尾数是7 但不是7的倍数

}

i=i+10;

}

return j;

}

int num3(int m)

{int i=0,j=0,a=0,b=0,c=0;

for(i=1;i<=m;i++)

{if(i%7!=0&&i%10!=7)

{a=i/1000%10;//含7但不是7的倍数 尾数不是7

b=i/100%10;

c=i/10%10;

if(a==7||b==7||c==7) j++;

}

}

return j;

}

更多推荐