这题细节比较多,要注意临界值,第一次提交80分,掉了情况,当i=7就直接退出了,所以我把循环结束条件改到了i++执行之前,当然,我觉的在for里面也可以,如for(i=1;i-s!=n+1;i++)
#include <stdio.h>
int main(void)
{
int n,i,j=0,k,s=0,h;
int p[4]={0};
scanf("%d",&n);
if(n!=0)
for(i=1;;i++)
{
k=0;
h=i;
if(j==4)
j=0;
while(h)
{
if(i%7==0)
{
k=1;
break;
}
if(h%10%7==0&&h%10!=0)
{
k=1;
break;
}
h=h/10;
}
if(k==1)
{
p[j]++;
s++;
}
j++;
if(i-s==n)
break;
}
for(i=0;i<4;i++)
{
printf("%d",p[i]);
if(i!=3)printf("\n");
}
return 0;
}