1358:身份证号码
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
命题人:
提交:6
解决:3
题目描述
十八位居民身份证号码由 6 位地址码、8 位出生日期码、3 位顺序码和 1 位校验码组成(倒数第 2 位是性别代码,男单女双),其格式如图所示。


其中校验码的计算方法如下:
(1)将身份证号码的前 17 位数字分别乘以对应的系数,对应关系如下表。
号码位 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
系数 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
1 |
6 |
3 |
7 |
9 |
10 |
5 |
8 |
4 |
2 |
(2)将 17 位数字和系数相乘的结果累计求和;
(3)用所求的和除以 11 得到余数;
(4)用余数与身份证号码的最后一位校验码进行对应,对应关系如下表。
模 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
校验码 | 1 | 0 | X | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 |
现用编程验证身份证号码的正确性,并识别其中所包含的出生日期和性别信息。
输入
一行,18位数字的身份证号。
输出
如果验证成功,输出出生日期,及性别(male, female )。
如果验证失败,输出“wrong!”。
如果验证失败,输出“wrong!”。
样例输入-1 复制
330326199807071166
样例输出-1 复制
1998-07-07,female