读完题直接就有思路了,代码信手拈来。

#include<stdio.h>

//isInclude7()函数用于判断一个整数某位是否为7
int isInclude7(int n){
    while(n>0){
        if(n%10==7) return n;
        else n /=10;
    }return 0;  //循环体分支异常出口
}

int main(){
    int n;
    while(~scanf("%d",&n)){
        int count=0;
        for(int i=1;i<=n;i++){
            if((i%7==0)||isInclude7(i)) count++;  //整数是7的倍数或某位数是7则计数加1
        }printf("%d\n",count);
    }
}