牛客网 2018年全国多校算法寒假训练营练习比赛(第二场) G.送分了QAQ

时间:2023-02-13 19:08:49

 

G.送分了QAQ
 
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
链接: 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




牛客网前一段时间出过一道类似的,不过这道更简单一点。没什么技巧,瞎写就可以。
 

代码:
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cstdlib>
 6 #include<string.h>
 7 #include<set>
 8 #include<vector>
 9 #include<queue>
10 #include<stack>
11 #include<map>
12 #include<cmath>
13 using namespace std;
14 typedef long long ll;
15 const int inf=0x3f3f3f3f;
16 double PI=acos(-1.0);
17 const int maxn=1e6+100;
18 int flag[maxn];
19 int main(){
20     for(int i=0;i<maxn;i++){
21         int x=i;
22         while(x){
23             int x1=x%10;
24             int x2=x%100;
25             if(x1==4||x2==38){flag[i]=1;break;}
26             x/=10;
27         }
28     }
29     int n,m;
30     while(~scanf("%d%d",&n,&m)){
31         if(n==0&&m==0)break;
32             int ans=0;
33         for(int i=n;i<=m;i++){
34             if(flag[i]==1)ans++;
35         }
36     printf("%d\n",ans);
37     }
38     return 0;
39 }