中国居民身份证校验码算法如下:

将身份证号码前面的17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 将这17位数字和系数相乘的结果相加。用加出来和除以11,取余数。 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字, 其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。余数和校验码的对应关系可以用公式:m=(12-n) mod 11计算,其中mod为求余运算,m为校验码,n为之前计算出来的余数。如果之前计算出的余数是3,第18位的校验码就是9。如果余数是2那么对应的校验码就是X,X实际是罗马数字10。 例如:某男性的身份证号码为【53010219200508011x】, 我们看看这个身份证是不是合法的身份证。首先我们得出前17位的乘积和【(57)+(39)+(010)+(15)+(08)+(24)+(12)+(91)+(26)+(03)+(07)+(59)+(010)+(85)+(08)+(14)+(1*2)】是189,然后用189除以11得出的结果是189/11=17----2,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的检验码是X。所以,可以判定这是一个正确的身份证号码。

请编写一个程序,输入身份证前17位后,计算并输出最后的校验码,

输入格式:

前17位的每个数字分别输入,中间用空格间隔

输出格式:

输出校验码,如果校验码是10,不必转成X

输入样例:

5 3 0 1 0 2 1 9 2 0 0 5 0 8 0 1 1

输出样例:

10

实现

#!/usr/bin/env python3
#-*- coding:utf-8 -*-
#Need a number list
def identityCode(ls):i=0mul=0cls=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]if not len(ls)==len(cls):raise Exception("Input Error!")while i<len(cls):mul+=ls[i]*cls[i];i+=1return (12-mul%11)%11
def main():print(identityCode(list(map(lambda x:int(x),input().split()))))#------
main()

输出

5 3 0 1 0 2 1 9 2 0 0 5 0 8 0 1 1
10

PTA每日一题-Python-身份证校验相关推荐

  1. 力扣牛客每日刷题(Python解法持续更新)

    力扣牛客每日刷题(持续更新) 初试结束第15天, 之前简单的处理了部分毕设方面的任务, 对接下来的学习做了个简单的规划 决定每天开始刷几道力扣题提高一下算法的理解,不能让之前学的数据结构都忘记了 每道 ...

  2. ACWING蓝桥杯每日一题python

    ACWing蓝桥杯每日一题 一直没时间去总结算法,终于有空可以总结一下刷的acwing了,因为没时间所以最近只刷了ACWING的蓝桥杯每日一题...真是该死 1.截断数组 首先我们要知道,如果sum( ...

  3. 每日一题.PYTHON面向对象编写模拟人生屌丝逆袭游戏(登录类/角色类/场景类)?

    文件结构: [root@xmdevops xmdevops_limanman]# tree |grep -v ".pyc" |-- main.py                 ...

  4. 每日一题Python.1

    这里我介绍一下我们学校的校园判题系统哦,不喜别喷,喜欢就进入这个网站学习吧,我是使用它一步一步学习C语言,逐渐学会了C语言.使用这个网站最好使用谷歌浏览器吧,广东技术师范大学在线判题网站http:// ...

  5. linux命令dd创建虚拟硬盘,每日一题.PYTHON如何模拟LINUX的dd命令快速创建大文件?...

    原文数据: 无 具体要求: 1. 模拟Linux的dd命令快速创建大文件 代码实现: # -*- coding: utf-8 -*- """ # # Authors: l ...

  6. python编写登录接口_每日一题.PYTHON编写简单登录接口?

    原文数据: user_db.txt root:root_admin admin:admin_root lock_db.txt admin 具体要求: 1.输入用户名密码 2.认证成功后显示欢迎消息 3 ...

  7. PTA(每日一题)7-59 武林盟主

    在传说中的江湖中,各大帮派要选武林盟主了,如果龙飞能得到超过一半的帮派的支持就可以当选,而每个帮派的结果又是由该帮派帮众投票产生的,如果某个帮派超过一半的帮众支持龙飞,则他将赢得该帮派的支持.现在给出 ...

  8. PTA(每日一题)7-43 验证哥德巴赫猜想

    哥德巴赫猜想之一是指一个偶数(2除外)可以拆分为两个素数之和.请验证这个猜想. 因为同一个偶数可能可以拆分为不同的素数对之和,这里要求结果素数对彼此最接近. 输入格式: 首先输入一个正整数T,表示测试 ...

  9. PTA(每日一题)7-66 分解素因子

    假设n是一个正整数,它的值不超过1000000,请编写一个程序,将n分解为若干个素数的乘积. 输入格式: 首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据.每组测试数据输入一个正整数n(1 ...

  10. PTA(每日一题)7-49 互质数

    Sg认识到互质数很有用.若两个正整数的最大公约数为1,则它们是互质数.要求编写函数判断两个整数是否互质数. 输入格式: 首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据.每组测试先输入1个 ...

最新文章

  1. Redis 使用技巧
  2. Building High Performance Websites (1) CDN
  3. Apache Spark概述
  4. 山东省102021年普通高考成绩查询,山东高考成绩今日发布!成绩查询看这里!
  5. php yii2 获取表里最大的id_Yii2中自带分页类实现分页
  6. 想创业就去创,愿意打工就去上班打工,每个人都有每个人的活法
  7. 串行通信(一):I2C
  8. 指定 年-月-日 将其封装tree树状结构
  9. Zabbix 5.0 配置简单WEB网页监测和触发器
  10. RichContentLabel使用注意
  11. 美赛只用matlab够,美赛思路
  12. 全国大学生计算机ms系统,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
  13. c语言加权成绩,c – 加权中值计算
  14. 计算机科学与技术专业大学四川省录取分数,四川人工智能专业大学分数线
  15. 【Day4.1】打的士去卧佛寺
  16. 整屏滚动效果插件 fullpage详解
  17. Kafka-Failover笔记
  18. 克里斯蒂安贝尔_克里斯蒂安贝尔现身机场,身材瘦到认不出来,蝙蝠侠又开始减重了...
  19. Linux学习(一)虚拟机安装linux资源,linux目录结构,购买阿里云服务器远程登陆linux,下载安装并使用Xshell与Xftp
  20. php采集 今日头条链接,火车头按作者采集今日头条全部文章的方法

热门文章

  1. 微信公众号盈利模式_微信公众号的盈利方式有哪些?
  2. 剑桥禁书与一个自由的灵魂
  3. 高清多媒体接口(HDMI)静电防护器件ULC0524PA
  4. HTML、JS、CSS 实现果冻按钮效果 代码解读
  5. 淘宝获取商品历史价格API
  6. 【文献管理】Zotero基础操作
  7. 获取历史市盈率的地方
  8. 解决配置静态IP还是会出现动态IP地址的问题
  9. 国产首发:上海川土微电子数字接口电源数字隔离芯片模拟芯片领导者
  10. 输入10个互不相同的数字并分成5对,问有多少种分法。