生成身份证校验码

  • 描述
  • 格式
  • 样例
  • 题解及详细注释

描述

我国的居民身份证是18位字符的编码,每个人的编码都是唯一的,校验规则如下:

∑(ai*wi)mod 11 = 1

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

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

例如某身份证号码为:370683198901117657,最后一位“7”是正确的校验码。

又如某号码为:470683198902117657,最后一位“7”是错误的校验码。

现在给定前面17位的字符串,请求出最后一位校验码。

比如给定前面17位字符串分别是:43032120051015005、43032120050917021 和 43038120050528002

则求出的最后一位校验码分别应为:5、9 和 X

格式

输入格式
一个17位的字符串,表示身份证的前面17位。

输出格式
一个字符,表示所求的校验码

样例

输入样例
21038119830104383
输出样例
0

题解及详细注释

#include <stdio.h>
int main()
{char n[17];int a[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1},s=0;//a是位权值数组,s是总和scanf("%s",&n);//把身份证号当成字符串输入int flag=1,i;for(i=0;i<17;i++)//前17位的位权值相加{s+=a[i]*(n[i]-48);}for(int i=0;i<=9;i++)//遍历判断,求最后一位{if((s+i)%11==1){printf("%d",i);flag=0;} }if(flag){printf("X");}
}


写于2021年7月22日11:34分。

生成身份证校验码(c语言)相关推荐

  1. mysql身份证校验码_用sql实现18位身份证校验代码分享 身份证校验位计算

    身份证校验码的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.第i位对应的数为[2^(18-i)]mod11.从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 ...

  2. 【转载】用Python计算身份证校验码

    原来的天朝良民证是15位,构成如下:   1-6位:地址码.采用的是行政区划代码,可以去   统计局的网站   查.   7-12位:生日期码.构成为yymmdd.   13-15位:顺序码.每个地区 ...

  3. 用Python计算身份证校验码

    转自:http://my.oschina.net/moooofly/blog/147958 原来的天朝良民证是15位,构成如下:  1-6位:地址码.采用的是行政区划代码,可以去 统计局的网站 查.  ...

  4. 【Verilog】CRC 校验(二)用 Verilog 实现生成 CRC 校验码

    目录 实验任务 CRC 生成 Verilog 实现 电路生成原理 模块设计图 CRC 生成时序图 具体代码实现 上板验证 实验任务 在上一篇介绍了 CRC 校验码的原理,如何计算 CRC 校验码,这篇 ...

  5. 单片机生成二维码 C语言代码

    随着二维码支付的普及,现在对设备端生成二维码的要求越来越多,前些时间做了一些项目,刚好是要在单片机接12864LCD屏生成二维码. 单片机生成二维码的源码,C语言编写,封装成函数,简单易用.本程序需要 ...

  6. md5校验 java_java生成MD5校验码

    在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD5 的128 位整数.然后将此 128 位计 ...

  7. java生成冗余校验码_对循环冗余校验码CRC的理解

    模2加法 1+1=0, 0+1=1, 1+0=1, 0+0=0 模2减法 1-1=0, 0-1=1, 1-0=1, 0-0=0 相当于二进制中的逻辑异或运算.也就是比较后两者对应位相同则结果为&quo ...

  8. mysql身份证校验码_sql 语句 验证身份证号码

    展开全部 像这样写个视图就行了: create View eVMutiCard AS Select a.Badge,a.Name,a.DepID,a.Compid,a.JobID,a.Status,a ...

  9. 海明校验码c语言源代码,校验码辅导之海明校验

    三.海明校验 我们在前面指出过要能纠正信息字中的单个错误,所需的最小距离为3.实现这种纠正的方法之一是海明码. 海明码是一种多重(复式)奇偶检错系统.它将信息用逻辑形式编码,以便能够检错和纠错.用在海 ...

  10. 160413、生成随机校验码

    1.java类 package com.icbc.hshop.store.common; import java.awt.Color; import java.awt.Font; import jav ...

最新文章

  1. CSS导航条菜单:带小三角形
  2. 困恼的mappedBy
  3. mysql的initial_mysql Lost connection to MySQL server at ‘reading initial communication packet
  4. UrlRewrite(Url重写技术)
  5. Echarts 出现不明竖线解决方案
  6. py 的 第 12 天
  7. 热传导方程差分格式 matlab,热传导方程向后差分格式的MATLAB程序
  8. 企业微信发消息通知-java
  9. 2013年微博营销最成功案例
  10. 职业学校计算机专业好吗,计算机专业就业前景好不
  11. 不怕加班狗有情绪,就怕加班狗有“武器”
  12. 使用Java操纵Excel表格
  13. 3C认证和CQC认证怎么区分,详解
  14. 浅析<router-view> v-slot事例
  15. http 304响应的理解
  16. Python开源项目目录结构参考
  17. Android的GridView控件
  18. SONY发布新的背照式CCD图像传感器
  19. unknown action type: xxx
  20. Win2008R2 允许远程桌面访问

热门文章

  1. 双11购书大优惠!独家优惠券,折后再减,赶紧来抢啊!
  2. GIT乱码解决方案汇总
  3. java scavenge_Java虚拟机(JVM)垃圾回收器Parallel Scavenge收集器 - Break易站
  4. C# 地理信息系统GIS开源软件
  5. java销毁servlet_销毁servlet
  6. 怎样在html中设置首字母大写,css如何设置英文首字母大写
  7. html文字溢出怎样处理,css文本溢出处理
  8. HTML之调色原理分析
  9. 小程序商城源码(jshop安装)
  10. 电商系统常用的产品颜色,尺码选择JS程序实现