满分代码
#include<iostream>
#include<map>
using namespace std;
int judge(int num)
{// 满足题目要求,则返回1;否则返回0
if(num % 7 == 0) // 若是7的倍数
return 1;
else
{
while(num != 0) // 若数字中含有7
{
if(num % 10 == 7)
return 1;
num = num / 10;
}
}
return 0;
}
int main()
{
int n;
map<int, int> m;
cin>>n;
for(int j = 0; j < 4; j++) // 统计容器初始化
m[j] = 0;
for(int i = 1; i <= n; )
{
for(int j = 0; j < 4 && i <= n; j++)
{
if(judge(i))
{
m[j]++;
n++; // 上限+1,这是亮点
}
i++;
}
}
for(int j = 0; j < 4; j++) // 打印结果
cout<<m[j]<<endl;
return 0;
}