这个题的难度在中等,以为会比较复杂,但是试了下简单的暴力解法直接计算也是可以的,我想应该会有规律的,和位数有关,但是找规律发现约数和带七的数字会有重合,相比之下这种更简单
#include<stdio.h>
using namespace std;
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int count=0,tmp;
for(int i=7;i<=n;i++){
tmp=i;
if(tmp%7==0){
count++;
}else{
while(tmp){
if(tmp%10==7){
count++;
break;
}
tmp=tmp/10;
}
}
}
printf("%d\n",count);
}
return 0;
} 
京公网安备 11010502036488号