牛客 送分了QAQ
https://www.nowcoder.com/acm/contest/74/G
题目描述
杭州人称傻乎乎的人为62,而嘟嘟家这里没有这样的习俗。
相比62,他那里的人更加讨厌数字38,当然啦,还有4这个
数字!所以啊,嘟嘟不点都不想见到包含38或者4的数字。
每次给出一个区间[n,m],你能找到所有令人讨厌的数字吗?
输入描述:
多组输入输出;
输入的都是整数对n、m(0<n≤m<1000000),
如果遇到都是0的整数对,则输入结束。
输出描述:
对于每次的输入
输出全部令人讨厌的数的个数
示例1
输入
1 100
0 0
输出
20
#include<stdio.h>
int bi[500880]={0},w=0;
int dabiao();
int main(void)
{
dabiao();
int a,b;
while(scanf("%d%d",&a,&b),a!=0||b!=0)
{
int i,j,k,be=0,en=0;
for(i=0;a>bi[i];i++)
;
be=i;
for(i=be;b>=bi[i];i++)
;
en=i;
printf("%d\n",en-be);
}
}
int dabiao()
{
int a=3,b=1000000,i,j;
bi[500879]=99900000;
for(i=a;i<b;i++)
{
char s[19]={0};
int f=1;
sprintf(s,"%d",i);
for(j=0;s[j];j++)
{
if(s[j]=='4') { bi[w]=i;w++;f=0;break;}
}
for(j=0;s[j+1];j++)
{
if(s[j]=='3'&&s[j+1]=='8'&&f==1)
{
bi[w]=i;
w++;
break;
}
}
}
// printf("%d",bi[500879]);
return 0;
}
打表过的,,,注意结束条件。a,b都是0才结束