题记
一开始没想清楚就写了,只拿了50,错误原因在判断7的倍数,而我一开始写成了是在验证是否含7的过程中得到的数是否是7的倍数。
100分代码如下
#include <iostream>
using namespace std;
//输入
int n;
int memo[4];
int sum;
bool judge_7(int num){
//如果是7的倍数
if(num%7==0)
return false;
//如果含有7
while(num>0){
if(num%10==7)
return false;
else
num/=10;
}
return true;
}
int main()
{
scanf("%d",&n);
sum=0;
int i=1;
while(sum<n){
if(judge_7(i))
sum++;
else
memo[(i-1)%4]++;
i++;
}
for(int i=0;i<4;i++)
printf("%d\n",memo[i]);
return 0;
}