输入一个身份证号,输出性别及出生日期。 输入格式: 输入一个二代身份证号(18位) 输出格式: 输出性别及出生日期。 输入样例1: 在这里给出一组输入。例如: 110101200104057856 输出样例1: 在这里给出相应的输出。例如: 男 出生于2001年04月05日 输入样例2: 在这里给出一组输入。例如: 110108991112289 输出样例2: 在这里给出相应的输出。例如: 输入的身份证号位数错
时间: 2023-05-30 14:04:54 浏览: 547
题目描述
输入一个身份证号,输出性别及出生日期。
输入格式:
输入一个二代身份证号(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++ 代码
相关问题
zust-sl4-1根据身份证号输出性别及出生日期 分数 10 作者 张银南 单位 浙江科技大学 输入一个身份证号,输出性别及出生日期。 输入格式: 输入一个二代身份证号(18位) 输出格式: 输出性别及出生日期。
ZUST-SL4-1是一个编程任务,它要求编写一个程序,输入中国大陆居民的18位身份证号码,然后解析并输出该人的性别以及对应的出生日期。这个任务通常用于学习如何处理字符串、数据验证和日期计算等基础知识。
在中国,身份证号码的第17位是奇数代表男性,偶数代表女性。前6位代表地区码,接下来的8位表示出生年份,接着的4位表示月份,最后两位是日子。例如,身份证号"330105199001010012",性别是女性(因为第17位是偶数),出生日期是1990年1月1日。
如果你想要完成这样一个功能,可能需要使用正则表达式来验证输入的有效性,然后通过数学运算获取出生日期。以下是一个简单的Python示例:
```python
import re
def parse_id(id_number):
# 验证身份证号格式
if not re.match(r'^\d{18}$', id_number):
return "Invalid ID number"
gender = '女' if int(id_number[17]) % 2 == 0 else '男'
birth_year = id_number[:4]
birth_month = id_number[4:8]
birth_day = id_number[8:10]
return f"性别:{gender}, 出生日期:{birth_year}{birth_month}{birth_day}"
# 示例用法
id_to_parse = "330105199001010012"
print(parse_id(id_to_parse))
```
二代身份证号码为18位,前六位为籍贯,7-14位为出生年月日,第17位为性别,偶数为女奇数为男。根据以上规则编写程序,输入身份证号码,输出出生日期和性别。要求输出格式为“生日为:****年**月**日”,“性别:*”。
了解,你可以通过以下Python代码来实现这个功能:
```python
def parse_id(id_number):
# 验证身份证号码是否合法
if len(id_number) != 18 or not id_number.isdigit():
return "身份证号码无效"
# 根据身份证规则提取出生日期和性别
birth_date = id_number[6:14]
gender = '女' if id_number[17] % 2 == 0 else '男'
# 格式化输出
formatted_birth_date = f"生日为:{birth_date[:4]}年{birth_date[4:6]}月{birth_date[6:8]}日"
output = f"{formatted_birth_date}\n性别:{gender}"
return output
# 示例输入
id_input = input("请输入身份证号码:")
print(parse_id(id_input))
```
阅读全文