输入一个身份证号,输出性别及出生日期。 输入格式: 输入一个二代身份证号(18位) 输出格式: 输出性别及出生日期。 输入样例1: 在这里给出一组输入。例如: 110101200104057856 输出样例1: 在这里给出相应的输出。例如: 男 出生于2001年04月05日 输入样例2: 在这里给出一组输入。例如: 110108991112289 输出样例2: 在这里给出相应的输出。例如: 输入的身份证号位数错
时间: 2023-05-30 08:04:54 浏览: 441
题目描述
输入一个身份证号,输出性别及出生日期。
输入格式:
输入一个二代身份证号(18位)
输出格式:
输出性别及出生日期。
输入样例1:
110101200104057856
输出样例1:
男 出生于2001年04月05日
输入样例2:
110108991112289
输出样例2:
输入的身份证号位数错误
解题思路
根据身份证号的规则,可以将身份证号分为以下几个部分:
- 前6位:行政区划代码,表示身份证持有人所在的省市县区。
- 7~14位:出生年月日,前4位表示年份,接下来2位表示月份,最后2位表示日期。
- 15~17位:顺序码,表示在当天出生的人中的序号,奇数为男性,偶数为女性。
- 18位:校验码,用于检验身份证号的正确性。
根据这些规则,可以实现以下算法:
- 首先判断输入的身份证号是否为18位,如果不是则输出“输入的身份证号位数错误”。
- 接着判断身份证号的前6位是否为合法的行政区划代码,可通过查询相关数据表来实现。
- 然后截取身份证号的7~14位,解析出出生年月日,并输出。
- 最后根据身份证号的倒数第二位判断性别,奇数为男性,偶数为女性,并输出。
需要注意的是,由于输入的身份证号是字符串形式,因此需要将其转换为数字形式进行计算和比较。同时,输出日期时需要注意格式化输出,比如输出“2001年04月05日”而不是“20010405”。
参考代码
C++ 代码
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)