算法提高 身份证号码升级
时间限制: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实现蓝桥杯 算法提高 身份证号码升级相关推荐

  1. java 蓝桥杯算法提高 身份证号码升级(题解)

    试题 算法提高 身份证号码升级 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为 ...

  2. 蓝桥杯 算法提高 身份证号码升级

    问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...

  3. [Java] 蓝桥杯ADV-171 算法提高 身份证号码升级

    问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...

  4. 蓝桥杯 ADV-171 算法提高 身份证号码升级

    问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由2位(7,8位)改为四位. 2.最后添加一位验证码. ...

  5. Java实现 蓝桥杯 算法提高 小X的购物计划

    试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...

  6. Java实现 蓝桥杯 算法提高 成绩排名

    试题 算法提高 成绩排名 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小明刚经过了一次数学考试,老师由于忙碌忘记排名了,于是老师把这个光荣的任务交给了小明,小明则找到了聪明的你, ...

  7. Java实现 蓝桥杯 算法提高 快乐司机

    算法提高 快乐司机 时间限制:1.0s 内存限制:256.0MB 问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌"快乐的 ...

  8. Java实现 蓝桥杯 算法提高 Monday-Saturday质因子

    试题 算法提高 Monday-Saturday质因子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 这个问题是个简单的与数论有关的题目,看起来似乎是"求正整数的所有质因子 ...

  9. Java实现 蓝桥杯 算法提高 秘密行动

    试题 算法提高 秘密行动 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小D接到一项任务,要求他爬到一座n层大厦的顶端与神秘人物会面.这座大厦有一个神奇的特点,每层的高度都不一样, ...

最新文章

  1. python怎么用pip_python怎么使用pip工具
  2. 【C++】Visual Studio教程(四) - Visual Studio其它功能
  3. Java Number shortValue()方法与示例
  4. POJ 1651 Multiplication Puzzle(类似矩阵连乘 区间dp)
  5. ibm量子计算机 申请,【IBM量子计算机问世,造福人类的杰作!】IBM量子计算机已面前全球开放申请使用_来自网易大神圈子_科学企图玄学...
  6. 法国spin高等计算机学校,spin-去展网
  7. IoT 打响安防保卫战!
  8. fiddler显示客户端请求时间
  9. Hive 面试题 | 连续登陆天数统计
  10. Amazon Alexa硬件方案选型
  11. 京东云安装docker
  12. 教授专栏37 | 黄昊: 发展虚拟资产, 须监管教育并行
  13. 使用高德SDK开发安卓地图应用软件
  14. Swift 网络请求 Moya+RxSwift
  15. HTML生日快乐代码 HTML5七夕情人节表白【告白模板】 HTML5七夕情人节表白网页源码 html css javascript
  16. MD5值计算方法,推荐使用linux系统计算,一条命令搞定!
  17. Matlab归一化实现
  18. python画笑脸表情_python
  19. SAP成本核算中BOM和工艺路线选取逻辑分析
  20. 【Leetcode】Remove Duplicates from Sorted List II

热门文章

  1. 阿里云学习笔记——设置规则引擎(2)
  2. faro shuffle
  3. 安装配置管理 之 Realplay 10.0 的安装和使用
  4. Offiice-Excel使用技巧(单元格冻结锁定)
  5. 在RedHat6.9_x64上安装Oracle11g R2_11.2.0.4
  6. 4月16英语听力答案
  7. win7备份工具_电脑备份系统详细图文教程
  8. 商业数据分析与店铺运营
  9. 外推预测法(R语言预测实战-节选)
  10. C语言实现OOP——轻量级的面向对象 C 语言编程框架 LW_OOPC 介绍(三)