牛客网 2018年全国多校算法寒假训练营练习比赛(第二场) G.送分了QAQ
G.送分了QAQ
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
杭州人称傻乎乎的人为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 }