蓝桥杯之手机尾号

30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!

    给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。

    这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:

    1. 如果出现连号,不管升序还是降序,都加5分。例如:5678,4321都满足加分标准。

    2. 前三个数字相同,或后三个数字相同,都加3分。例如:4888,6665,7777都满足加分的标准。注意:7777因为满足这条标准两次,所以这条规则给它加了6分。

    3. 符合AABB或者ABAB模式的加1分。例如:2255,3939,7777都符合这个模式,所以都被加分。注意:7777因为满足这条标准两次,所以这条标准给它加了2分。

    4. 含有:6,8,9中任何一个数字,每出现一次加1分。例如4326,6875,9918都符合加分标准。其中,6875被加2分;9918被加3分。

    尾号最终得分就是每条标准的加分总和!

    要求程序从标准输入接收数据,在标准输出上输出结果。

    输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。
    输出格式为:n行整数。

    例如,输入:
14
3045
0211
2345
6543
7777
8888
7878
7788
6688
2424
2244
9918
6789
8866
    则输出:
0
0
5
6
8
12
3
3
5
1
1
3
8
5

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define MAX 100
 4 //是否连号 
 5 int isLianHao(char *a)
 6 {
 7     char c=a[0];
 8     char sheng[5]={c,c+1,c+2,c+3,0};
 9     char jiang[5]={c,c-1,c-2,c-3,0};
10     if(strcmp(a,sheng)==0||!strcmp(a,jiang))
11     return 1;
12     return 0;
13 }
14 
15 //前三个是否相同 
16 int isQianSan(char *a)
17 {
18     return a[0]==a[1]&&a[0]==a[2];
19 }
20 //后三个是否相同 
21 int isHouSan(char *a)
22 {
23     return a[1]==a[2]&&a[1]==a[3];
24 }
25 
26 //abab模式 
27 int isABAB(char *a)
28 {
29     return (a[0]==a[2]&&a[1]==a[3]);
30 } 
31 
32 //aabb
33 int isAABB(char *a)
34 {
35     return (a[0]==a[1]&&a[2]==a[3]);
36 }
37 
38 int is689(char *a)
39 {
40     int count=0;
41     for(int i=0;i<4;i++)
42     if(a[i]=='6'||a[i]=='8'||a[i]=='9')
43     count++;
44     return count;
45 }
46 
47 //计算串的分数 
48 int sum(char *a)
49 {
50     int sum=0;
51     if(isLianHao(a)) sum+=5;
52     if(isQianSan(a)) sum+=3;
53     if(isHouSan(a)) sum+=3;
54     if(isAABB(a))  sum+=1;
55     if(isABAB(a)) sum+=1;
56     return sum+is689(a);
57 }
58 int main()
59 {
60     int n;
61     char a[MAX][5];
62     scanf("%d",&n);
63     fflush(stdin);
64     for(int i=0;i<n;i++)
65         gets(a[i]);
66     for(int i=0;i<n;i++)
67     printf("%d\n",sum(a[i]));
68     getchar();
69     return 0;
70 }

posted @ 2013-05-01 00:18  Please Call me 小强  阅读(372)  评论(0编辑  收藏  举报