博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯 ADV-171 算法提高 身份证号码升级 (java)
阅读量:1816 次
发布时间:2019-04-25

本文共 1497 字,大约阅读时间需要 4 分钟。

 算法提高 身份证号码升级  
时间限制: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 Main {	public static void main(String[] args) {		// TODO Auto-generated method stub		Scanner scanner = new Scanner(System.in);		String string = scanner.nextLine();		String[] strings1=new String[25];		String[] strings=string.split("");		for(int i=0;i<15;i++){			strings1[i]=strings[i];		}		String temp = null;		for(int i=14;i>5;i--){			strings1[i+2]=strings1[i];		}		strings1[6]="1";		strings1[7]="9";		int sum=0;		int[] xishu={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};		for(int i=0;i<17;i++){			sum+=Integer.parseInt(strings1[i])*xishu[i];		}		int last=sum%11;		switch (last) {		case 0:			temp="1";			break;		case 1:			temp="0";			break;		case 2:			temp="x";			break;		case 3:			temp="9";			break;		case 4:			temp="8";			break;		case 5:			temp="7";			break;		case 6:			temp="6";			break;		case 7:			temp="5";			break;		case 8:			temp="4";			break;		case 9:			temp="3";			break;		case 10:			temp="2";			break;		default:			break;		}				strings1[17]=temp;		for(int i=0;i<18;i++){			System.out.print(strings1[i]);	}}}

转载地址:http://uuwkf.baihongyu.com/

你可能感兴趣的文章
C# WPF DataGrid 根据某列的值设置行的背景色
查看>>
水晶报表(Crystal Report)通过Visual Studio 2010的WPF实现
查看>>
C# 实现多语言界面
查看>>
限制用户输入 只能是数字,小数,负数。
查看>>
Click Once不能正常安装的问题
查看>>
C#判断网络IP是否通畅
查看>>
MVC4数据注解和验证
查看>>
解决VS2015发布后提示“$未引用”的问题。
查看>>
将excel中的数据导入到DataTable中
查看>>
Web页面取得当前日期
查看>>
让整个table居于页面正中,(上下左右居中)。
查看>>
wince 截全屏、截屏工具
查看>>
C# 中的回车换行符
查看>>
C#WinCE 记录日志文件
查看>>
C# 读写XML文件,用于配置文件
查看>>
PC端到WinCE端文件互相拷贝
查看>>
遍历文件夹及子文件夹中的所有文件
查看>>
MVC 实现数据导入Excel,并在客户端下载。
查看>>
Jquery 实现文本框键盘回车事件
查看>>
JQuery 循环读取table中的数据
查看>>