这个题的难度在中等,以为会比较复杂,但是试了下简单的暴力解法直接计算也是可以的,我想应该会有规律的,和位数有关,但是找规律发现约数和带七的数字会有重合,相比之下这种更简单
#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; }