题目描述

第二届河南省最美教师评选开始了,每一位同学都可以投票选出你支持的人选,但是为了防止刷票,必须通过身份验证才可投票。负责投票平台后台的老大爷希望你能帮他验证身份证号的合法性,防止那些熊孩子随意刷票,下面给出验证规则: (身份证末尾的大写X表示罗马数字10) 采用了ISO 7064:1983.MOD 11-2校验码,以防止不小心记错某一位

1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-27-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。

2、将这17位数字和系数相乘的结果相加。

3、用加出来和除以11。

4、余数只可能有0-1-2-3-4-5-6-7-8-9-100-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-21-0-X-9-8-7-6-5-4-3-2。

5、通过上面得知如果余数是3,就会在身份证的第18位数字上出现的是9。如果对应的数字是2,身份证的最后一位号码就是X。

特别注意:

       ”Ⅹ“   是 罗马数字 10, 不是 英文大写字母 ”X“, 此处为了编码方便,使用了英文字母 ‘X’ 代替;

Copy

现在将给你提供一组身份证号码,请判断哪些是合法的,哪些是不合法的。

输入格式

第一行一个整数n,表示给你提供的身份证号码总数
接下来n行每行18个字符,为一个身份证序列,保证字符满足为0~9和X(末尾的X一定为大写) (不保证省份证真实存在,不保证年月日满足要求,但是只需要判断身份证是否合法,不需要判断年份月份是否现实)

输出格式

对于每一行输入,给出一个输出,表示输入的身份证是否合法 如果合法,则输出"True",否则,输出"False"

样例

样例输入

1
53010219200508011X

Copy

样例输出

True

Copy

数据范围与提示

数据范围

n \le 500n≤500

样例解释

首先我们得出前17位的乘积和 ((5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2))((5∗7)+(3∗9)+(0∗10)+(1∗5)+(0∗8)+(2∗4)+(1∗2)+(9∗1)+(2∗6)+(0∗3)+(0∗7)+(5∗9)+(0∗10)+(8∗5)+(0∗8)+(1∗4)+(1∗2))是189

然后用189除余11得出结果 189 \% 11 = 2189%11=2,也就是说其余数是2。

最后通过对应规则就可以知道余数2对应的检验码是X。

所以,可以判定这是一个正确的身份证号码。

上代码!!!

#include<bits/stdc++.h>
using namespace std;
char a[20]={'1','0','X','9','8','7','6','5','4','3','2'};
int b[20]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int main(){int m,sum=0;cin>>m;char n[256];while(m--){cin >>n;int ans=0;for ( int i = 0 ; i < 17 ; i++ ){ans=ans+(n[i]-'0')*b[i];}ans%=11;if(a[ans]==n[17]){cout << "True\n";}else{cout << "False\n";}}return 0;
}

可达编程 [语言题]中国身份证号码校验相关推荐

  1. 中国公民身份证号码校验

    中国公民身份证号码校验 上图可看出18位位身份证每一部分表示的意义. 图为随机生成身份号码,四川省 乐山市 井研县 1981年12月28日生 这里主要讲解最后一位校验码的验证 校验码主要是由前面17位 ...

  2. 基于可视化结构的身份证号码校验系统-树莓派实现

    基于可视化结构的身份证号码校验系统 摘要: 本作品是一个通用的身份证号码校验系统,目前已经尝试在Linux和Windows系统下运行,结果均可达到理想效果.系统通过运用基础GUI库tkinter创建系 ...

  3. 【转载】 身份证号码校验(15位和18位都可以)

    转载自: 开源中国社区    面向对象的15位.18位中国大陆身份证号码解析.验证工具 import java.text.ParseException; import java.text.Simple ...

  4. JS身份证号码校验大全史上最全号称公安局安全监测

    身份证号码校验 function testid(id) {// 1 "验证通过!", 0 //校验不通过 // id为身份证号码var format = /^(([1][1-5]) ...

  5. JS身份证号码校验,JS根据身份证号码获取出生年月日,JS根据出生年月日获取年龄,JS根据身份证号码获取性别

    目录 1.JS身份证号码校验 2.JS根据身份证号码获取出生年月日 3.JS根据出生年月日获取年龄 4.JS根据身份证号码获取性别 1.JS身份证号码校验 /*** 身份证校验** @export* ...

  6. validate格式校验之身份证号码校验

    //校验身份证号码 function isIdCardNo(num) {     var factorArr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5 ...

  7. vue身份证号码校验

    一.vue身份证号码校验? let checkRegNo = (rule,value,callback) => {     setTimeout(() => {         const ...

  8. 身份证号码校验(JavaScript)

    /*** 身份证号码校验* 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X*/ function checkIdCard(idCard){v ...

  9. 使用Java编写Hive的UDF实现身份证号码校验及15位升级18位

    使用Java编写Hive的UDF实现身份证号码校验及15位升级18位 背景 在数仓项目中,有时候会根据身份证信息做一些取数filter或者条件判断的相关运算进而获取到所需的信息.古人是用Oracle做 ...

  10. Oracle身份证号码校验函数

    Oracle身份证号码校验函数 CREATE OR REPLACE FUNCTION FUNC_AAC002_15_18 (prm_aac002 varchar2)return varchar2 is ...

最新文章

  1. R语言函数:length计算长度、seq生成数据序列、rep将数据对象重复N遍复制、cut将连续变量分割为多水平的因子变量、pretty将连续变量x分成n个区间创建合适的断点、cat数据对象拼接
  2. java util concurrent_Error: java.util.concurrent.Execution
  3. FastDFS服务重启
  4. loadrunner发送json_Loadrunner模拟JSON接口请求进行测试
  5. CMake编译opencv
  6. el-table表格在表头和数据行添加图标、处理数据
  7. 给Java程序员的一些面试建议,大厂面试题汇总
  8. 安卓与IOS移动段浏览器视频与音频的问题与总结
  9. 简述使jdbc连接mysql数据库_java中简述使用JDBC完成数据库操作的基本步骤。
  10. 算法优化笔记|蝙蝠算法的理解及实现
  11. 神兽传说JAVA下载_神兽传说3-救赎大陆
  12. openwrt php wifi 钓鱼,Openwrt自动扫描WiFi并连接中继
  13. 温控PLC三菱风机程序设计多路多路风机,温度控制,时间控制
  14. 如何制作一个优秀的PPT?
  15. 五款优秀重复文件查找工具
  16. 彻底关闭Windows更新
  17. linux网络操作系统项目教程第三版答案,《Linux网络操作系统项目教程(RHEL7.4 CentOS 7.4)(第3版))》习题及答案...
  18. 「镁客早报」微软总市值超过苹果亚马逊;Linux内核出现漏洞
  19. html5手机端纵向时间轴,html5触屏手机端响应式时间轴内容切换特效
  20. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time datetime模块...

热门文章

  1. 第四篇:UE4视角切换节点,Possess和Set View Target With Blend的区别
  2. 往事如烟 - 梧桐叶落
  3. java serialVersionUID = 1L
  4. 【正点原子MP157连载】 第九章 TF-A移植-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  5. Fixed Resistors
  6. EOS Error 3090003: provided keys, permissions, and delays do not satisfy declared authoriz
  7. 中国大学最卷的专业,让我读上了
  8. python 炒股公式_计算股票公式
  9. 数字方法--按零补位
  10. 洛谷 P1489 猫狗大战