您的位置:首页 > 其它

水题 不要62 HDU 2089

2013-08-17 21:09 288 查看
先预处理出所有的数是不是可能拿来用,我的想法是记录1-i这个区间内可用的数为s[i].

输入a,b.答案就为s[b] - s[a-1].

贴代码:

#include<cstdio>
#define N 1000010
int sum
;
bool check(int x)
{
while(x)
{
int t = x%10;
if(t == 4) return false;
if( t == 2 && (x/10%10) == 6) return false;
x /= 10;
}
return true;
}
void init()
{
for(int i=1; i<N-5; ++i)
{
if(check(i)) sum[i] = sum[i-1]+1;
else sum[i] = sum[i-1];
}
}
int main()
{
//    freopen("in.c","r",stdin);
init();
int a,b;
while(~scanf("%d%d",&a,&b))
{
if(a==0 && b==0) break;
printf("%d\n",sum[b]-sum[a-1]);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: