[ACM_水题] 不要62(hdu oj 2089, 不含有62暨4之数字统计)

Problem Description

杭州口如那些傻乎乎粘嗒嗒的人工62(音:laoer)。
杭州交通管理局时会扩张一些之士车牌照,新近出来一个吓信息,以后上牌照,不再含有不吉祥的数字了,这样一来,就好解个别的士司机和乘客的心理障碍,更安全地服务民众。
匪红的数字也具含有4还是62的号。例如:
62315 73418 88914
且属不吉利号码。但是,61152虽说涵盖6同2,但非是62连号,所以未属无红数字之列。
您的任务是,对于每次让闹的一个牌照区间号,推断出交管局今次又如实际给小辆新的士车上牌照了。

 

Input

输入的都是整数对n、m(0<n≤m<1000000),如果遇都是0的整数对准,则输入完。

 

Output

于每个整数针对性,输出一个请勿包含不吉祥数字的统计个数,该数值占一行位置。

 

Sample Input

1 100 0 0

 

Sample Output

80

 

Source

迎新学期——超级Easy版热身赛

 解题思路:直接暴力计算(网上还发生个用dp的而参看:http://blog.csdn.net/linraise/article/details/12282901)

 1 #include<iostream>
 2 #include<string.h>
 3 using namespace std;
 4 int sum[1000003];
 5 bool ok(int n){
 6     while(n){         
 7         if(n%10==4||n%100==62)return 0;          
 8         n=n/10;      
 9     }      
10     return 1;  
11 }
12 int main(){
13     memset(sum,0,sizeof(sum));
14     for(int i=1;i<1000002;i++){
15         sum[i]=sum[i-1]+ok(i);
16     }
17     int n,m;
18     while(cin>>n>>m){
19         if(m==n && m==0)break;
20         cout<<sum[m]-sum[n]+ok(n)<<'\n';
21     }return 0;
22 }

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注