生成身份证校验码(c语言)
生成身份证校验码
- 描述
- 格式
- 样例
- 题解及详细注释
描述
我国的居民身份证是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语言)相关推荐
- mysql身份证校验码_用sql实现18位身份证校验代码分享 身份证校验位计算
身份证校验码的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.第i位对应的数为[2^(18-i)]mod11.从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 ...
- 【转载】用Python计算身份证校验码
原来的天朝良民证是15位,构成如下: 1-6位:地址码.采用的是行政区划代码,可以去 统计局的网站 查. 7-12位:生日期码.构成为yymmdd. 13-15位:顺序码.每个地区 ...
- 用Python计算身份证校验码
转自:http://my.oschina.net/moooofly/blog/147958 原来的天朝良民证是15位,构成如下: 1-6位:地址码.采用的是行政区划代码,可以去 统计局的网站 查. ...
- 【Verilog】CRC 校验(二)用 Verilog 实现生成 CRC 校验码
目录 实验任务 CRC 生成 Verilog 实现 电路生成原理 模块设计图 CRC 生成时序图 具体代码实现 上板验证 实验任务 在上一篇介绍了 CRC 校验码的原理,如何计算 CRC 校验码,这篇 ...
- 单片机生成二维码 C语言代码
随着二维码支付的普及,现在对设备端生成二维码的要求越来越多,前些时间做了一些项目,刚好是要在单片机接12864LCD屏生成二维码. 单片机生成二维码的源码,C语言编写,封装成函数,简单易用.本程序需要 ...
- md5校验 java_java生成MD5校验码
在Java中,java.security.MessageDigest (rt.jar中)已经定义了 MD5 的计算,所以我们只需要简单地调用即可得到 MD5 的128 位整数.然后将此 128 位计 ...
- 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 ...
- mysql身份证校验码_sql 语句 验证身份证号码
展开全部 像这样写个视图就行了: create View eVMutiCard AS Select a.Badge,a.Name,a.DepID,a.Compid,a.JobID,a.Status,a ...
- 海明校验码c语言源代码,校验码辅导之海明校验
三.海明校验 我们在前面指出过要能纠正信息字中的单个错误,所需的最小距离为3.实现这种纠正的方法之一是海明码. 海明码是一种多重(复式)奇偶检错系统.它将信息用逻辑形式编码,以便能够检错和纠错.用在海 ...
- 160413、生成随机校验码
1.java类 package com.icbc.hshop.store.common; import java.awt.Color; import java.awt.Font; import jav ...
最新文章
- CSS导航条菜单:带小三角形
- 困恼的mappedBy
- mysql的initial_mysql Lost connection to MySQL server at ‘reading initial communication packet
- UrlRewrite(Url重写技术)
- Echarts 出现不明竖线解决方案
- py 的 第 12 天
- 热传导方程差分格式 matlab,热传导方程向后差分格式的MATLAB程序
- 企业微信发消息通知-java
- 2013年微博营销最成功案例
- 职业学校计算机专业好吗,计算机专业就业前景好不
- 不怕加班狗有情绪,就怕加班狗有“武器”
- 使用Java操纵Excel表格
- 3C认证和CQC认证怎么区分,详解
- 浅析<router-view> v-slot事例
- http 304响应的理解
- Python开源项目目录结构参考
- Android的GridView控件
- SONY发布新的背照式CCD图像传感器
- unknown action type: xxx
- Win2008R2 允许远程桌面访问