JAVA蓝桥杯(5)手机尾号评分
2016-01-08 20:48
351 查看
问题描述
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位一组的数据,就是等待计算加分的手机尾号。
例如,输入:
14
3045
….
…..
6789
8866
则输出:
0
0
….
…
8
5
解决方法
import java.util.Iterator; import java.util.Scanner; import java.util.Vector; public class Question5 { public static int total = 0; private static Scanner scanner; public static void main(String[] args) { scanner = new Scanner(System.in); int n = Integer.parseInt(scanner.nextLine()); Vector<String> vector = new Vector<String>(); for (int i = 0; i < n; i++) { vector.add(scanner.nextLine()); } Iterator<String> iterator = vector.iterator(); while (iterator.hasNext()) { total = 0; String string = (String) iterator.next(); char[] chars = string.toCharArray(); if (!new Question5().one(chars)) {// 如果符合第一条规则,那么后两条规则无需再判断 new Question5().two(chars); new Question5().three(chars); } for (int i = 0; i < chars.length; i++) { if (chars[i] == '6' || chars[i] == '8' || chars[i] == '9') { total += 1; } } System.out.println(total); } } private boolean one(char[] s) {// 第一条规则 boolean flag = false; if (Math.abs(s[0] - s[3]) == 3 && Math.abs(s[1] - s[2]) == 1) { total += 5; flag = true; } return flag; } private void two(char[] s) {// 第二条规则 if (s[0] == s[1] && s[1] == s[2]) { total += 3; } if (s[1] == s[2] && s[2] == s[3]) { total += 3; } } private void three(char[] s) {// 第三条规则 if (s[0] == s[1] && s[2] == s[3]) { total += 1; } if (s[0] == s[2] && s[1] == s[3]) { total += 1; } } }
运行结果
143045
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
相关文章推荐
- Java中的SSH框架之struts2
- Spring MVC 映射处理器配置
- java中读取配置文件的方法
- 【慕课笔记】第二章 变量和常量 第2节 认识JAVA标识符
- struts2配置内置校验器
- java误区: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- Java Web 服务器性能监控工具 JavaMelody
- Java知识三:对象的另一种实例化方式
- 对象的上转型对象
- 【慕课笔记】第二章 变量和常量 第1节 JAVA中的关键字
- java -jar classpath设置
- kafka文档(2)----kafka API(java版本)
- Java学习笔记之一个蛋疼的小细节
- Eclipse启动 org.eclipse.swt.SWTException: Invalid thread access问题解决方法
- 【项目实战】——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋、大转盘等抽奖活动)
- Spring MVC文件上传
- [Spring MVC] - @ModelAttribute使用
- Java多线程-wait(), notify(), notifyAll()、yield()、sleep()、join()、interrupt()原理及使用
- Java 除法 保留 n 为小数
- java 开关