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

本文介绍了一种通过编程解决寻找特定区间内含有讨厌数字(38或4)的问题的方法。利用C++实现了一个简单的算法来统计这些数字的数量,并提供了解决方案的完整代码。

 

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 }

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ZERO-/p/9703582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值