目录

1 问题描述

2 解决方案

 


1 问题描述

问题描述
  从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位字符串是否合理。

2 解决方案

具体代码如下:

import java.util.Scanner;public class Main {public void printResult(String A) {char[] arrayA = A.toCharArray();int[] result = new int[18];for(int i = 0;i < A.length();i++) {if(i >= 6)result[i + 2] = arrayA[i] - '0';else {result[i] = arrayA[i] - '0';}}result[6] = 1;result[7] = 9;int[] temp = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char[] temp1 = {'1','0','x','9','8','7','6','5','4','3','2'};int sum = 0;for(int i = 0;i < 17;i++) sum += result[i] * temp[i];sum %= 11;for(int i = 0;i < 17;i++)System.out.print(result[i]);System.out.print(temp1[sum]);}public static void main(String[] args) {Main test = new Main();Scanner in = new Scanner(System.in);String A = in.nextLine();test.printResult(A);}
}

算法笔记_101:蓝桥杯练习 算法提高 身份证号码升级(Java)相关推荐

  1. 算法笔记_096:蓝桥杯练习 算法提高 求最大值(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负 ...

  2. 算法提高 求最大值java_算法笔记_096:蓝桥杯练习 算法提高 求最大值(Java)

    1 问题描述 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负. 输入格式 输入的第一行为n,数对的 ...

  3. 算法笔记_056:蓝桥杯练习 未名湖边的烦恼(Java)

    目录 1 问题描述 2 解决方案 2.1 递归法 2.2 递推法   1 问题描述 问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰 ...

  4. 算法笔记_098:蓝桥杯练习 算法提高 盾神与条状项链(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n ...

  5. 算法笔记_100:蓝桥杯练习 算法提高 三个整数的排序(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 输入三个数,比较其大小,并从大到小输出. 输入格式 一行三个整数. 输出格式 一行三个整数,从大到小排序. 样例输入 33 88 77 样 ...

  6. 算法笔记_120:蓝桥杯第六届省赛(Java语言B组部分习题)试题解答

     目录 1 三角形面积 2 立方变自身 3 三羊献瑞 4 九数组分数 5 饮料换购 6 生命之树   前言:以下试题解答代码部分仅供参考,若有不当之处,还请路过的同学提醒一下~ 1 三角形面积 三角形 ...

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

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

  8. Java实现蓝桥杯 算法提高 身份证号码升级

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

  9. java 日历算法_Java实现 蓝桥杯VIP 算法提高 任意年月日历输出

    算法提高 任意年月日历输出 时间限制:1.0s 内存限制:512.0MB 已知2007年1月1日为星期一. 设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印. 为 ...

  10. 算法笔记_080:蓝桥杯练习 队列操作(Java)

    目录 1 问题描述 2 解决方案 1 问题描述 问题描述 队列操作题.根据输入的操作命令,操作队列(1)入队.(2)出队并输出.(3)计算队中元素个数并输出. 输入格式 第一行一个数字N. 下面N行, ...

最新文章

  1. OpenCV 笔记(08)— 二维点、三维点、基于 Mat 的 std::vector 等常用数据结构的定义和输出
  2. 图灵奖颁给深度学习之父,他们让计算机像学霸一样思考
  3. The RAII Programming Idiom
  4. hibernate映射之多对多双向
  5. RoFormerV2:自然语言理解的极限探索
  6. JasperReport:概述
  7. 算法----最大承载量下的最大价值问题
  8. 网站页面增加一个简单的密码登录访问php网站源码
  9. Mybatis-语法笔记
  10. 将大于2的偶数分解成两个素数之和
  11. 无人驾驶智能车竞速赛,智能大会无人驾驶比赛
  12. Android 使用Vector XML文件创建矢量图片资源
  13. Python 断言的使用
  14. 功耗:Leakage Power
  15. 企业经营性icp许可证与非经营性icp的区别
  16. 一文搞懂CAN FD总线
  17. GitLab官网安全更新(2022-06-30)
  18. 图数据库技术选型汇总
  19. UVM实战书籍再复习
  20. IE8:像用Windows一样用浏览器

热门文章

  1. 计算机c程序题孔融让梨,幼儿园大班语言游戏教案《孔融让梨》含PPT课件
  2. @cacheable 设置过期时间_Redis 的过期策略是如何实现的?
  3. fscapture下载收费吗?_听歌要收费,下载又要付费?国内的音乐app还想干什么?...
  4. python字典修改属性_Python2.7格式化字典键属性的递归调用
  5. linux 格式化ntfs u盘,手机u盘数据恢复linux格式化为ntfs格式
  6. linux四种网络模式,Linux三种网络连接模式
  7. 滴滴android面试算法,滴滴打车面试经验
  8. 项目实战-1读取记事本中的文件,写入到slice切片中。
  9. 有哪些特点_锌钢栅栏有哪些特点?锌钢栅栏特点有哪些?
  10. android 主界面 布局,Android用户界面与View/ViewGroup