烟大ACM新秀赛 E手机尾号评分

Description

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分。

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

Input

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

Output

n行整数。

Sample Input

14
3045
0211
2345
6543
7777
8888
7878
7788
6688
2424
2244
9918
6789
8866

Sample Output

0
0
5
6
8
12
3
3
5
1
1
3
8
5

HINT

/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:   .cpp
*作    者: 冷基栋
*完成日期:2014年3月29日
*版 本 号:v1.0
*/
#include <iostream>
using namespace std;
int main()
{
    int n,m,a,b,c,d,k;
    cin >> n ;
    while (n > 0)
    {
        k=0;
        cin >> m;
        d = m % 10;
        c = (m/10) % 10;
        b = (m/100) % 10;
        a = m/1000;
        if ((a-b==-1)&&(b-c==-1)&&(c-d==-1))
            k+=5;
        if ((a-b==1)&&(b-c==1)&&(c-d==1))
            k+=5;
        if (a==c&&b==c)
            k+=3;
        if (b==c&&c==d)
            k+=3;
        if (a==b&&c==d)
            k+=1;
        if (a==c&&b==d)
            k+=1;
        if (a==6||a==8||a==9)
            k+=1;
        if (d==6||d==8||d==9)
            k+=1;
        if (b==6||b==8||b==9)
            k+=1;
        if (c==6||c==8||c==9)
            k+=1;
        cout<<k<<endl;
        n--;
    }
    return 0;
}

我的方法太烂了。。。。。。

时间: 2024-08-11 22:38:10

烟大ACM新秀赛 E手机尾号评分的相关文章

烟大ACM新秀赛 A多位数的处理

Description 给出一个不多于5位的整数,要求 1.求出它是几位数 2.分别输出每一位数字 3.按逆序输出各位数字,例如原数为321,应输出123 Input 一个不大于5位的数字 Output 三行第一行 位数第二行 用空格分开的每个数字,注意最后一个数字后没有空格第三行 按逆序输出这个数 Sample Input 12345 Sample Output 5 1 2 3 4 5 54321 HINT 哈姆雷特:数字还是字符?这是一个问题! 代码: /* *Copyright (c)20

烟大ACM新秀赛 B统计出其中英文字母、数字、空格和其他字符的个数

Description 输入一行字符,分别统计出其中英文字母.数字.空格和其他字符的个数. Input 一行字符 Output 统计值 Sample Input aklsjflj123 sadf918u324 asdf91u32oasdf/.';123 Sample Output 23 16 2 4 HINT /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称: .cpp *作 者: 冷基栋 *完成日期:2014年3月

烟大ACM新秀赛 C填写乘法算式

Description 观察下面的算式: * * × * * = * * * 它表示:两个两位数字相乘,结果是3位数.其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0.当然,满足这个要求的算式很多,但我们还有如下的要求: 所有星号所代表的数字全都是奇数.满足这个要求的算式就不多了. 比如:13 x 15 = 195 题目的任务是:编写程序,找到所有可能的情况. Input Output 输出的结果中,每个情况占用1行,不需要考虑不同情况如何排序问题.每行的格式如:

08简单推导:手机尾号评分

[题目] 30年的改革开放,给中国带来了翻天覆地的变化.2011全年中国手机产量约为11.72亿部.手机已经成为百姓的基本日用品! 给手机选个好听又好记的号码可能是许多人的心愿. 但号源有限,只能辅以有偿选号的方法了. 这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分.其规则如下: 1. 如果出现连号,不管升序还是降序,都加5分.例如:5678,4321都满足加分标准. 2. 前三个数字相同,或后三个数字相同,都加3分.例如:4888,6665,7777都满足加分的标准. 注

取快递的数学问题:手机尾号的重复概率

学校门口,四位手机尾号取快递.问:设有 \(n\) 个包裹,则存在两个包裹号码(收件人手机尾号,假设均匀分布)相同的概率 \(P(n)\) 是多少? 答曰:手机尾号一共有 \(10^4=10000\) 个,所以 \( P(n)=\frac{A_{10000}^n}{(10000)^n} \), 其中 \(A_n^r\) 为排列数. 求出表达式非常简单,然而计算具体值时却遇到了麻烦:分子和分母都太大了,IEEE 754 浮点数受不了了,直接扔给我个 Infinity. 怎么办呢?把排列数展开,取对

第三届蓝桥杯javaC组_手机尾号

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: 蓝桥杯赛题 * 作    者:   彭俊豪 * 完成日期:   2016   年 04月 01日 * 版 本 号:      001 * 对任务及求解方法的描述部分 * 问题描述: 30年的改革开放,给中国带来了翻天覆地的变化.2011全年中国手机产量约为11.72亿部.手机已经成为百姓的基本日用品

YTUOJ-手机尾号评分

题目描述 30年的改革开放,给中国带来了翻天覆地的变化.2011全年中国手机产量约为11.72亿部.手机已经成为百姓的基本日用品! 给手机选个好听又好记的号码可能是许多人的心愿.但号源有限,只能辅以有偿选号的方法了. 这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分.其规则如下: 1. 如果出现连号,不管升序还是降序,都加5分.例如:5678,4321都满足加分标准. 2. 前三个数字相同,或后三个数字相同,都加3分.例如:4888,6665,7777都满足加分的标准.注意:

记2016商大ACM省赛

比赛前三天才得到省赛的非正式参赛名额,总有点哭笑不得,笑的是是我的终究是我的,跑不掉…… 哭的是现在就剩三天了,虽然最近也一直在参加训练赛,但一直是断断续续的,对自己现在的水平并没有太大的信心…… 虽然没有了我翻译无敌的江苏学霸,但临时而又不临时的两个队友还是挺给力的~ 第一次和教主和杨丰瑞组队,虽然平时关系很好,但比赛风格还不是很了解,不过熟悉就好,两个队友性格都挺好的,很好接触,这就够了~ 下午着急忙慌地去买了本字典,本来想去借的,后来一想,别人的字典太大拿着不方便,再说有也不能总借啊,还是

08年acm区域赛北京赛区 部分题解题报告

08年区域赛北京赛区 http://poj.org/searchproblem?field=source&key=Beijing+2008 POJ 3921 Destroying the bus stations 题目还是比较难的,当时的榜似乎只有4/25的通过/提交,其实题目数据很水.学长转换模型写了网络流求最小割,可以AC,不过自己造了个数据推翻了正确性.我写了个很挫的bfs套bfs,外层是最小的删除点数,内层是求最短路,数据很水可以AC.但比较蛋疼的在于bfs耗内存,而且队列中的点数是阶乘