题目来自:CSP认证 201912-1 报数
代码如下:
#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int check(int x){
if(x%7==0){
return 0;
}
else{
char s[1000];
memset(s,0,sizeof(s));
sprintf(s,"%d",x);
for(int i=0;i<strlen(s);i++)
if(s[i]=='7'){
return 0;
}
}
return 1;
}//判断是否跳过
int main()
{
int a=0,b=0,c=0,d=0,n,cnt=0;
scanf("%d",&n);
for(int i=1;cnt<n;i++){
if(check(i))
cnt++;
else{
if(i%4==1)a++;
else if(i%4==2)b++;
else if(i%4==3)c++;
else if(i%4==0)d++;
}
}
printf("%d\n%d\n%d\n%d",a,b,c,d);
return 0;
}