码迷,mamicode.com
首页 > 其他好文 > 详细

武汉科技大学ACM:1010: 电话号码

时间:2014-12-19 20:40:39      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

Problem Description

LXD打算换个手机号码,但是他去营业厅选号码的时候却把移动的客服小姐烦得不行,因为他太挑三捡四啦。对于一个手机号的后六位数字(前面五位他就无所谓了),LXD有很严格的要求,具体如下:

1)一定要有数字x

2)不能有数字k

3)这个六位数的大小在区间[l,r]内。

4)最少要有两个相邻的数字相同。

现在你要计算出这后六位数字有多少组是符合LXD要求的。

Input

第一行是一个正整数T,表示总共有T组数据。

接下来有T(T组数据),每行有四个正整数x,k,l,r0<=l<=r<=999999,0<=x,k<=9

 

Output

每行输出一个整数,对应该组测试数据的答案,符合要求的号码数。

Sample Input

2
1 2 100000 100010
1 4 0 20

Sample Output

10
10


 1 #include<stdio.h>
 2 int is(int x,int m,int flag)
 3 {
 4     if(flag==1 && x==0 && m<100000)
 5     {
 6         return 1;
 7     }
 8     int i,j;
 9     i=m%10;
10     j=m/10;    
11     if(j!=0 && i!=x)
12         return is(x,j,0);
13     else if( i==x)
14         return 1;
15     else
16         return 0;
17 }
18 int not(int k,int m,int flag)
19 {
20     if(flag==1 && k==0 && m<100000)
21     {
22         return 0;
23     }
24     int i,j;
25     i=m%10;
26     j=m/10;    
27     if(j!=0 && i!=k)
28         return not(k,j,0);
29     else if(i==k)
30         return 0;
31     else
32         return 1;
33     
34 }
35 
36 int dou(int m,int flag)
37 {
38     if(flag==1 && m<10000)
39     {
40         return 1;
41     }
42     int a[6];
43     for(int i=0;i<6;i++)
44     {
45         a[i]=m%10;
46         m/=10;
47     }
48     for(int j=0;j<5;j++)
49     {
50         if(a[j]==a[j+1])
51         {
52             return 1;
53         }
54     }
55     return 0;
56     
57     
58 }
59 int main()
60 {
61     int x,k,l,r;
62     int n,count;
63     while(scanf("%d",&n)!=EOF)
64     {
65         while(n--)
66         {    
67             count=0;
68             scanf("%d%d%d%d",&x,&k,&l,&r);
69             if(l>=0 && r>=l && r<=999999 && x>=0 && k>=0 && x<=9 && k<=9)
70             {
71                 for(int i=l;i<=r;i++)
72                 {
73                     if(is(x,i,1) && not(k,i,1) && dou(i,1))
74                         count++;
75                 }
76                 printf("%d\n",count);
77             }            
78         }
79     }
80     
81     
82     return 1;
83 }

 

武汉科技大学ACM:1010: 电话号码

标签:

原文地址:http://www.cnblogs.com/liuwt365/p/4174650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!