一个合法的身份证号码由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 weight[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char M[12]="10X98765432";
int main()
{int N,i,j,Z,flag=0;char str[20];scanf("%d",&N);for(i=0;i<N;i++){scanf("%s",str);Z=0;for(j=0;j<17;j++){Z+=(str[j]-'0')*weight[j];//别忘记-'0'}Z=Z%11;//printf("Z:%c ma:%c\n",M[Z],str[17]);if(M[Z]!=str[17]){printf("%s\n",str);flag=1;}}if(flag==0)printf("All passed\n");
}

L1-016. 查验身份证相关推荐

  1. PAT L1 016 查验身份证

    题目描述: 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10 ...

  2. [L1 - 15分合集]查验身份证

    L1-016 查验身份证 分数 15 作者 陈越 单位 浙江大学 题目: 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重 ...

  3. L1-016 查验身份证(2016年天梯赛模拟赛第8题)

    7-8 查验身份证(15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1 ...

  4. 团体程序设计天梯赛-练习集L1-016. 查验身份证

    L1-016. 查验身份证 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个合法的身份证号码由17位地区.日期编号和顺序编号 ...

  5. PTA第3章-2 查验身份证 (15 分)

    第3章-2 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4, ...

  6. C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)

    1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  7. 7-54 查验身份证 (15 分)

    7-54 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  8. PAT乙级 1031 查验身份证 (15 分)

    1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  9. 【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟

    problem 1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10, ...

  10. 7-21 查验身份证 (15 分)

    7-21 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

最新文章

  1. Java编程的逻辑 (39) - 剖析LinkedList
  2. Java foreach与for循环性能对比
  3. amd为什么还用针脚_为什么intel处理器不用针脚,AMD还一直使用针脚呢?
  4. Linux下arp用法
  5. linux python3运行,将Python3安装到Linux上并运行
  6. Android 启动过程简析(一)之 init 进程
  7. mac上sublime配置php环境,Mac下sublime text3如何配置php编译环境?
  8. 2018蓝桥杯A组:方格计数(3种方法)
  9. 《深入理解计算机系统》勘误建议
  10. table导出excel php_php导出excel表格的方法分享(代码)
  11. Oracle 锁表查询及解锁
  12. sql服务器虚拟内存不足,SQL Server虚拟内存不足的解决方法
  13. 什么编程语言的开发者平均年薪高达94万?
  14. Web开发——Photoshop(PSD格式截取)
  15. 微信朋友圈图片压缩算法
  16. linux 离线安装dtc,DTC使用小结-cuter-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台...
  17. 查询课程名称为“数学“,且分数低于60的学生姓名和分数
  18. Python3,听说这个第三方库竟碾压python自带JSON库。
  19. 电脑维修常见软件工具
  20. Windows下引入HR、scott实例(Oracle21C为例)

热门文章

  1. oracle创建编号函数,oracle函数初次尝试
  2. 计算机和局域网络的保密管理,浅析计算机局域网的安全保密与管理.doc
  3. hge引擎配置登录器教程_Hge引擎程序+登录器配置器+配套工具+全套入门教程
  4. RabbitMQ-基础知识总结
  5. 服务器最高安全防御策略选择与差异
  6. dbms_xplan
  7. 招聘季如何面试软件测试岗位?超全面试题分享
  8. 第一阶段冲刺团队贡献值总结
  9. Android中MaterialSearchView(搜索框)的简单实用
  10. 我感觉的优美诗句品鉴(不定时更新)