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实现蓝桥杯 算法提高 身份证号码升级的更多相关文章
- 算法笔记_101:蓝桥杯练习 算法提高 身份证号码升级(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 从1999年10月1日开始,公民身份证号码由15位数字增至18位.(18位身份证号码简介).升级方法为: 1.把15位身份证号码中的年份由 ...
- Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)
试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...
- Java实现 蓝桥杯 算法提高 小X的购物计划
试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...
- Java实现 蓝桥杯 算法提高 天天向上(DP)
试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ...
- Java实现 蓝桥杯 算法提高 欧拉函数(数学)
试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...
- Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)
试题 算法提高 计算超阶乘 问题描述 计算1*(1+k)(1+2k)(1+3k)-(1+n*k-k)的末尾有多少个0,最后一位非0位是多少. 输入格式 输入的第一行包含两个整数n, k. 输出格式 输 ...
- Java实现蓝桥杯 算法提高 线段和点
算法提高 线段和点 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个点和m个区间,点和区间的端点全部是整数,对于点a和区间[b,c],若a>=b且a<=c,称点a满 ...
- Java实现蓝桥杯-算法提高 P1003
算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...
- Java实现蓝桥杯 算法提高 八皇后 改
**算法提高 8皇后·改** 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大. 输入格式 一个8*8的棋 ...
随机推荐
- VL01N发货过账无法冲销
1业务场景 SD和EWM在使用BAPI:BAPI_OUTB_DELIVERY_CONFIRM_DEC发货过账后,发现外向交货单无法被冲销,后来发现是在发货过账后,有一个字段VLSTK声明仓库被维护上了 ...
- STM32 使用st-link调试遇到写保护 Flash Timeout 问题的解决思路
本文介绍了如何解决STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题:如果您遇到相同的问题,希望本文可以带来一些帮助: 如果本文帮到了您,请帮忙点个赞
- 阿里面试居然跟我扯了半小时的CyclicBarrier
一个大腹便便,穿着格子衬衫的中年男子,拿着一个贴满Logo的Mac向我走来,看着稀少的头发,我心想着肯定是顶级技术大牛吧!但是我也是一个才华横溢的人,稳住我们能赢. 面试官:您好,先做一下自我介绍吧! ...
- (1)从通信中的MCS含义开始讲起
通信中的MCS:Modulation and Coding Scheme,意思为调制编码方案/调制编码策略,其内涵可分为两个部分:Modulation 和 Coding. 在基带的信号处理流程中, ...
- mysql批量修改
update odr_order_base INNER JOIN (select merchant_id,order_base_id from odr_order_commodity) b on od ...
- tomcat 8.5 及其 9.0 response写cookie 设置damain为 [.test.com] 出错 An invalid domain [.test.com] was specified for this cookie
抛出异常: java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cooki ...
- python之logging基础入门
博客学习至:https://www.cnblogs.com/Nicholas0707/p/9021672.html#_label0 https://www.cnblogs.com/dream66/p/ ...
- css实现双色饼图
from:wx--前端早读课 首先回想用css画三角形的方法: <div class="triangle"></div> .triangle { displ ...
- Codeforces1183A(A题)Nearest Interesting Number
Polycarp knows that if the sum of the digits of a number is divisible by 3, then the number itself i ...
- POJ1930
题目链接:http://poj.org/problem?id=1930 题目大意: 给一个无限循环小数(循环节不知),要求你输出当该小数所化成的最简分数分母最小时所对应的最简分数. AC思路: 完全没 ...