1986: 身份证校验
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:390
解决:176
题目描述
身份证号码中的校验码是身份证号码的最后一位,它是依据GB 11643-1999中关于公民身份号码的规定,通过精密的计算公式得出的。公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码。校验码的计算方法为:将前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,其中余数为2时对应罗马数字X。例如前17位乘积和为189时,189除以11余2,对应校验码为X。校验码若计算结果为10则用X代替。
输入
一串数字,代表身份证的前17位。
输出
18位的完整身份证号。
样例输入 复制
12345678901234567
样例输出 复制
123456789012345677
提示
本题不考虑身份证号是否可能真实存在。如前17位可能是00000000000000000,而在现实中不存在这种情况。