Java实现蓝桥杯 算法提高 身份证号码升级
算法提高 身份证号码升级
时间限制:1.0s 内存限制:256.0MB
问题描述
从1999年10月1日开始,公民身份证号码由15位数字增至18位。(18位身份证号码简介)。升级方法为:
1、把15位身份证号码中的年份由2位(7,8位)改为四位。
2、最后添加一位验证码。验证码的计算方案:
将前 17 位分别乘以对应系数 (7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2) 并相加,然后除以 11 取余数,0-10 分别对应 1 0 x 9 8 7 6 5 4 3 2。
请编写一个程序,用户输入15位身份证号码,程序生成18位身份证号码。假设所有要升级的身份证的四位年份都是19××年
输入格式
一个15位的数字串,作为身份证号码
输出格式
一个18位的字符串,作为升级后的身份证号码
样例输入
110105491231002
样例输出
11010519491231002x
数据规模和约定
不用判断输入的15位字符串是否合理
import java.util.Scanner;public class 身份证号码升级 {public static void main(String[] args) {Scanner s = new Scanner(System.in);String x;char a[] = new char[15];char b[] = new char[18];x = s.next();for (int i = 0; i < 15; i++)a[i] = x.charAt(i);for (int i = 0; i < 6; i++)b[i] = a[i];b[6] = '1';b[7] = '9';for (int i = 8; i < 17; i++)b[i] = a[i - 2];int c[] = new int[18];int sum = 0;for (int i = 0; i < 17; i++) {c[i] = (b[i] - '0');if (i == 0 || i == 10)sum += c[i] * 7;else if (i == 1 || i == 11)sum += c[i] * 9;else if (i == 2 || i == 12)sum += c[i] * 10;else if (i == 3 || i == 13)sum += c[i] * 5;else if (i == 4 || i == 14)sum += c[i] * 8;else if (i == 5 || i == 15)sum += c[i] * 4;else if (i == 6 || i == 16)sum += c[i] * 2;else if (i == 7)sum += c[i] * 1;else if (i == 8)sum += c[i] * 6;else if (i == 9)sum += c[i] * 3;}if (sum % 11 == 0)b[17] = '1';else if (sum % 11 == 1)b[17] = '0';else if (sum % 11 == 2)b[17] = 'x';else if (sum % 11 == 3)b[17] = '9';else if (sum % 11 == 4)b[17] = '8';else if (sum % 11 == 5)b[17] = '7';else if (sum % 11 == 6)b[17] = '6';else if (sum % 11 == 7)b[17] = '5';else if (sum % 11 == 8)b[17] = '4';else if (sum % 11 == 9)b[17] = '3';else if (sum % 11 == 10)b[17] = '2';for (int i = 0; i < 18; i++)System.out.print(b[i]);}}
Java实现蓝桥杯 算法提高 身份证号码升级相关推荐
- java 蓝桥杯算法提高 身份证号码升级(题解)
试题 算法提高 身份证号码升级 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为 ...
- 蓝桥杯 算法提高 身份证号码升级
问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...
- [Java] 蓝桥杯ADV-171 算法提高 身份证号码升级
问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...
- 蓝桥杯 ADV-171 算法提高 身份证号码升级
问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...
- Java实现 蓝桥杯 算法提高 小X的购物计划
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...
- Java实现 蓝桥杯 算法提高 成绩排名
试题 算法提高 成绩排名 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明刚经过了一次数学考试,老师由于忙碌忘记排名了,于是老师把这个光荣的任务交给了小明,小明则找到了聪明的你, ...
- Java实现 蓝桥杯 算法提高 快乐司机
算法提高 快乐司机 时间限制:1.0s 内存限制:256.0MB 问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌"快乐的 ...
- Java实现 蓝桥杯 算法提高 Monday-Saturday质因子
试题 算法提高 Monday-Saturday质因子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子 ...
- Java实现 蓝桥杯 算法提高 秘密行动
试题 算法提高 秘密行动 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面.这座大厦有一个神奇的特点,每层的高度都不一样, ...
最新文章
- python怎么用pip_python怎么使用pip工具
- 【C++】Visual Studio教程(四) - Visual Studio其它功能
- Java Number shortValue()方法与示例
- POJ 1651 Multiplication Puzzle(类似矩阵连乘 区间dp)
- ibm量子计算机 申请,【IBM量子计算机问世,造福人类的杰作!】IBM量子计算机已面前全球开放申请使用_来自网易大神圈子_科学企图玄学...
- 法国spin高等计算机学校,spin-去展网
- IoT 打响安防保卫战!
- fiddler显示客户端请求时间
- Hive 面试题 | 连续登陆天数统计
- Amazon Alexa硬件方案选型
- 京东云安装docker
- 教授专栏37 | 黄昊: 发展虚拟资产, 须监管教育并行
- 使用高德SDK开发安卓地图应用软件
- Swift 网络请求 Moya+RxSwift
- HTML生日快乐代码 HTML5七夕情人节表白【告白模板】 HTML5七夕情人节表白网页源码 html css javascript
- MD5值计算方法,推荐使用linux系统计算,一条命令搞定!
- Matlab归一化实现
- python画笑脸表情_python
- SAP成本核算中BOM和工艺路线选取逻辑分析
- 【Leetcode】Remove Duplicates from Sorted List II
热门文章
- 阿里云学习笔记——设置规则引擎(2)
- faro shuffle
- 安装配置管理 之 Realplay 10.0 的安装和使用
- Offiice-Excel使用技巧(单元格冻结锁定)
- 在RedHat6.9_x64上安装Oracle11g R2_11.2.0.4
- 4月16英语听力答案
- win7备份工具_电脑备份系统详细图文教程
- 商业数据分析与店铺运营
- 外推预测法(R语言预测实战-节选)
- C语言实现OOP——轻量级的面向对象 C 语言编程框架 LW_OOPC 介绍(三)