身份证号合法性判别

简介: 身份证号合法性判别

【问题描述】我国身份证号码由数字与字母混合组成。早期身份证由15位数字构成,后来考虑到千年虫问题(15位的身份证号码只能为1900年1月1日到1999年12月31日出生的人编号),所以又增加了18位身份证号码编号规则。最后一位(第18位)校验码的计算方法如下:

 第一步:将身份证前17位数分别乘以不同的系数。从第1位到第17位的系数分别为:7、9、10、5、8、4、2、1、6、3、7、9、10、5、8、4、2,将17位数字和系数相乘的结果相加。
 第二步:将上一步结果除以11求余数,则余数只可能是0-10,身份证最后一位的对应字符为1、0、X、9、8、7、6、5、4、3、2。
 例如余数结果为3,则对应身份证号码的最后一位就是9,如果是10,身份证最后一位便是2。
 请根据上述算法判断输入的身份证号是否合法。

【输入形式】一行18位的字符串,代表一个身份证号
【输出形式】如果输入的是合法身份证号,请输出“YES”,否则输出“NO”
【样例输入】110000000000000000
【样例输出】NO
【样例说明】不合法身份证号,输出“NO”
【评分标准】共5个测试用例,全部通过为满分`

a = input()
alist = []
for i in range(0, 17):
    alist.append(a[i])
alist = [int(x) for x in alist]
s = 7 * alist[0] + 9 * alist[1] + 10 * alist[2] + 5 * alist[3] + 8 * alist[4] + 4 * alist[5] + 2 * alist[6] + 1 * alist[
    7] + 6 * alist[8] + 3 * alist[9] + 7 * alist[10] + 9 * alist[11] + 10 * alist[12] + 5 * alist[13] + 8 * alist[
        14] + 4 * alist[15] + 2 * alist[16]
if s % 11 == 0 and int(a[17]) == 1:
    print("YES")
elif s % 11 == 1 and a[17] == "0":
    print("YES")
elif s % 11 == 3 and a[17] == "9":
    print("YES")
elif s % 11 == 4 and a[17] == "8":
    print("YES")
elif s % 11 == 5 and a[17] == "7":
    print("YES")
elif s % 11 == 6 and a[17] == "6":
    print("YES")
elif s % 11 == 7 and a[17] == "5":
    print("YES")
elif s % 11 == 8 and a[17] == "4":
    print("YES")
elif s % 11 == 9 and a[17] == "3":
    print("YES")
elif s % 11 == 10 and a[17] == "2":
    print("YES")
elif s % 11 == 2 and a[17] == "X":
    print("YES")
else:
    print("NO")
相关文章
|
JSON Dubbo 测试技术
junit5单元测试自动生成最佳实践
在对比了几款插件后,最终选择了重新打造一套适合自己的插件。参看:【谈一谈单元测试】插件安装本地安装[文件: jcode5-1.0-SNAPSHOT.zip] 请在PC端预览或下载idea插件市场下载,搜索JCode5            插件使用插件有三个功能生成测试代码,也就是生成单元测试。生成json数据,通常用来生成测试数据,比如model。用来参数化测试。增加测试方法,随着业务开发,类可
2736 0
junit5单元测试自动生成最佳实践
|
存储 安全 Shell
Git clone 克隆私有项目
Git clone 克隆私有项目
Git clone 克隆私有项目
|
内存技术
除了智能照明系统,PWM 还可以应用在哪些领域
脉冲宽度调制(PWM)技术不仅适用于智能照明系统,还广泛应用于电机控制、电源管理、音频处理和通信系统等领域,以实现高效能的信号和功率控制。
894 11
|
固态存储 Linux Shell
阿里云Linux服务器性能测试wget -qO- bench.sh | bash
阿里云服务器性能测试,使用知名博主的wget -qO- bench.sh | bash来测试下阿里云服务器CPU Model(CPU型号)、CPU Cores(核数)、CPU Frequency(主频)、Total Disk(磁盘容量)、Total Mem(内存)、Swap(虚拟内存)、系统发行版本、Linux内核、地域节点、磁盘I/O读写速度及云服务器上传下载速度测试
1239 0
阿里云Linux服务器性能测试wget -qO- bench.sh | bash
|
供应链 安全 芯片
台积电7nm芯片断供影响分析:中国大陆半导体产业的挑战与机遇
近日,有关台积电可能断供中国大陆7nm芯片的消息引发了业界的广泛关注。这一事件不仅关系到全球半导体供应链的稳定性,也对中国大陆半导体产业的发展提出了新的挑战。本文将探讨这一事件背后的原因、可能的影响以及中国大陆半导体产业的应对策略。
655 0
STM32Cubemx PWM驱动SG90舵机
STM32Cubemx PWM驱动SG90舵机
771 13
|
数据可视化 Python
Python在医疗领域中的数据可视化实践案例
Python在医疗领域中的数据可视化实践案例
|
前端开发
CSS流光文字效果:打造网页上的霓虹灯效果!
CSS流光文字效果:打造网页上的霓虹灯效果!
|
Shell 分布式数据库 Hbase
使用 HBase Shell 进行数据的批量导入和导出
使用 HBase Shell 进行数据的批量导入和导出
1207 6
|
JavaScript 前端开发 IDE
程序员必知:WPSJSA宏编程(JS):1.初识
程序员必知:WPSJSA宏编程(JS):1.初识
1235 0