P1289 身份证号码验证

描述

居民身份证是18位字符的编码,每个人的编码都是唯一的,校验规则如下:
∑(ai*wi)mod 11 = 1

i表示号码字符从左至右包括校验码字符在内的位置序号;ai表示第i位置上的号码字符值;Wi表示第i位置上的加权因子。即将各位上的数值乘上位权之和对11取余,余数为1则表示该编码正确。注意:如果最后一位校验码是“X”或“x”,则代表该校验码的数值为10。

各位的权值依次是:7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1

例如某身份证号码为:370683198901117657,这是正确的编码。

又如某号码为:470683198902117657,这是错误的编码。

格式

输入格式

第一行是一个数字n,表示后面有n行待判断的号码 从第二行起,每行一个18位的字符串,表示要判断的身份证号码

输出格式

输出一个数值,表示正确的身份证号码的个数

样例

输入样例

4
430321200506200105
430321200505070050
430302200512290036
43038120050824012X

输出样例

3

限制

时间限制: 1000 ms

内存限制: 65535 KB

提示

1≤n≤400

代码

#include<iostream>
//#include<math.h>
#include<string.h>
using namespace std;
char n1[19];int main()
{int n,i,j;int a[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1};int s,t=0;cin>>n;//输入待判断的号码行数for(j=1;j<=n;j++){cin>>n1;//输入身份证号码s=0;//求∑(ai*wi),先置零for(i=0;i<18;i++){if(n1[i]=='x'||n1[i]=='X')//判断最后一位校验码{s+=a[i]*10;break;}s+=a[i]*(n1[i]-48);//求∑(ai*wi)}if(s%11==1)//判断身份证号码是否正确t++;//计算正确号码个数}cout<<t<<endl;return 0;} 

P1289 身份证号码验证相关推荐

  1. javascript身份证号码验证函数支持带x

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  2. 身份证号码验证-支持新的带x身份证

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  3. C#实现身份证号码验证的方法

    本文实例讲述了C#实现身份证号码验证的方法.分享给大家供大家参考.具体实现方法如下: 随着现在互联网的发展,越来越多的注册用户的地方都用到了身份证,那么对于输入的身份证如何验证呢?看下面的代码,其实很 ...

  4. .net身份证号码验证

    using System; /// <summary>/// Summary description for IDCardValid/// </summary>public c ...

  5. 正则实现二代身份证号码验证详解

    Start 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 一: IdCodeValid:f ...

  6. 身份证号码验证——C语小程序言

    身份证号码验证--C语小程序言 #include <stdio.h> int main(){int a, b, num = 0, sum = 0;int arr[17] = {0};int ...

  7. java对台湾同胞身份证号码验证

    package com.yt.eos.common.enumclass;import org.apache.commons.lang3.StringUtils;/*** 台湾同胞身份证号码验证* @a ...

  8. 身份证号码验证(转)

    文章出处: http://dengo.org/archives/941 不少大的游戏注册时都要输入身份证号码,来限制未成年人,配合所谓的反沉迷系统,账号注册环节注重的是快捷,所以身份证验证都不是真实的 ...

  9. JS正则表达式-附身份证号码验证(简易版)

    文章目录 JS正则表达式 匹配与搜索 一.方括号,圆括号 二.修饰符 三.元字符 四.量词 身份证号码验证(简易版) 身份证号码规则: 1.地址码 2.年份码 3.月份码 4.日期码 5.顺序码 6. ...

最新文章

  1. 2 Java NIO Channel-翻译
  2. 会话、进程组与僵死进程
  3. 贪心算法区间调度问题思路代码证明
  4. head.s 分析——Linux-0.11 学习笔记(三)
  5. 使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试
  6. java公约数_Java:获得最大的公约数
  7. 灾难,让我们靠的更近!
  8. SQL Server 高可用性(一)AlwaysOn 技术
  9. win7php一键,批处理也能干大事之——如何实现Win7系统一键切换用户
  10. python leetcode_八十二、Python | Leetcode贪心算法系列
  11. java程序编写需注意的问题
  12. 计算机术语宏是什么意思,宏(计算机术语)
  13. Codeforces 760B Frodo and pillows【贪心+二分】
  14. 代码执行器 hook console.log 方案
  15. 程序设计思维与实践 Week15 实验
  16. c语言lst文件,Keil C51 之LST文件
  17. vue 运行项目浏览器页面显示“该网页无法正常运作”
  18. 小红书笔记发布软件 批量上传视频
  19. elemet-ui后台表格自动排序解决办法
  20. SpringMVC图片文件上传功能实现

热门文章

  1. 无监督去雨论文(二):Unsupervised Single Image Deraining with Self-supervised Constraints
  2. 计算机英语阅读词汇,计算机英语词汇.docx
  3. 美学心得(第二百五十集) 罗国正
  4. C语言字符串函数----strcmp()函数用法
  5. antd中前段处理字符串转为Int
  6. css中文字居中怎么设置
  7. ChatGPT:为教育创新提供五大机遇
  8. 在线记事本软件哪个好用?
  9. cmd命令行切换盘符
  10. c语言用命令语句让电脑关机