查验身份证(15分)
查验身份证 (15分)
- 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
- 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
- 现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。
输入格式:
输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。
输出格式:
按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。
输入样例1:
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
输出样例1:
12010X198901011234
110108196711301866
37070419881216001X
输入样例2:
2
320124198808240056
110108196711301862
输出样例2:
All passed
程序代码:
#include<stdio.h>
int main()
{ int n,j;scanf("%d",&n);char a[17];int sum=0,ans=0;int weight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char M[]={'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};for(int k=0;k<n;k++){scanf("%s",&a);sum=0;for(j=0;j<17&&a[j]>='0'&&a[j]<='9';j++){sum+=(a[j]-'0')*weight[j];}if(j==17&&M[sum%11]==a[17])ans++;else printf("%s\n",a);if(ans==n)printf("All passed");}return 0;
}
查验身份证(15分)相关推荐
- PTA第3章-2 查验身份证 (15 分)
第3章-2 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4, ...
- C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- 7-54 查验身份证 (15 分)
7-54 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- PAT乙级 1031 查验身份证 (15 分)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- 【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟
problem 1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10, ...
- L1-016 查验身份证 (15 分)[JAVA]
L1-016 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4 ...
- 查验身份证 (15 分)一个合法的身份证号码
查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6, ...
- PAT 乙级 1031 查验身份证 (15分)
1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2, ...
- L1-016 查验身份证 (15 分)
L1-016 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4 ...
最新文章
- IOS_多线程_ASI_AFN_UIWebView
- careercup-C和C++ 13.2
- TP5与TP3.X对比
- windows批量关机
- C语言嵌入式系统编程修炼之内存操作
- 2018 CCPC 桂林站小结
- 接口规范 8. 播出认证相关接口
- ERP 趣读 【转】
- ospf多区域实例配置
- 190819每日一句
- 机箱前面的耳机插孔没声音
- 存储区域网络(Storage Area Network,简称SAN)
- 如何为计算机设置ip地上,电脑ip地址设置为多少
- 40Gbit和100Gbit的网络可视性解决方案
- 小米电视android刷机,小米电视刷机经历
- 提高数据存储效率的七个技巧
- NLP-文本向量化:Word Embedding 一般步骤【字符串->分词->词汇序列化->词汇向量化】
- iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用
- 获取当前系统时间(三种方法)
- return int()函数 c++解说
热门文章
- 采用SRM软件反拍卖采购的好处多多
- 中高级职称评审,一建二建免考两科
- 开发板 时间 同步_近万字试用报告!RISCV开发板GD32VF103
- astator-C#安卓脚本-vscode开发环境搭建
- 百度C++工程师的那些极限优化(并发篇)
- KnowHowChain(脑海链)进度报告——9月15日-9月30日
- wxpython 如何在windows下同时显示unicode中日韩文
- 2022年初级经济师考试金融专业知识与实务练习题及答案
- vmware'如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用'解决办法
- ctfshow SSTI 知识点总结