一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值: Z:0 1 2 3 4 5 6 7 8 9 10 M:1 0 X 9 8 7 6 5 4 3 2 现在给定一些身份证号码,请验证校验码的有效性,并输出有问题的号码。 【输入形式】 输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N 行,每行给出1个18位身份证号码。 【输出形式】 按照输入的顺序输出有问题的身份证号码,每行输出1个。如果所有号码都有效,则输出All passed。.C
时间: 2024-04-01 12:38:26 浏览: 24
好的,我知道了。下面是我的回答:
```python
def check_id(id_num):
# 校验码对应表
check_code_dict = {0: '1', 1: '0', 2: 'X', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}
# 加权系数
weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
# 身份证前17位
id_num_17 = id_num[:17]
# 身份证校验码
check_code = id_num[-1]
# 计算加权和
weighted_sum = sum([int(id_num_17[i]) * weights[i] for i in range(17)])
# 取模
mod = weighted_sum % 11
# 比较校验码
if check_code_dict[mod] == check_code:
return True
else:
return False
n = int(input())
invalid_ids = []
for i in range(n):
id_num = input()
if not check_id(id_num):
invalid_ids.append(id_num)
if invalid_ids:
for invalid_id in invalid_ids:
print(invalid_id)
else:
print("All passed")
```
这个程序会先读入身份证号码的个数,然后读入每一个身份证号码,通过 `check_id` 函数来验证是否合法。如果有不合法的身份证号码,就将其加入到 `invalid_ids` 列表中。最后,如果 `invalid_ids` 列表不为空,则按照输入顺序输出有问题的身份证号码;否则输出 "All passed"。
相关推荐
![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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)