[L1 - 15分合集]查验身份证
L1-016 查验身份证
分数 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
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
题解:
小型模拟,根据题意照做就行。
代码:
#include <bits/stdc++.h>
using namespace std;int main() {int n, sum, cnt = 0, w[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};string s, m = "10X98765432";bool flag;cin >> n;for (int i = 0; i < n; i++) {cin >> s;sum = 0;flag = true;for (int j = 0; j < 17; j++) {if (!(s[j] >= '0' && s[j] <= '9')) {flag = false;break;} sum += w[j] * (s[j] - '0');}if (!(flag && (s[17] == m[sum % 11]))) cout << s << endl;else cnt++;}if (cnt == n) cout << "All passed";return 0;
}
[L1 - 15分合集]查验身份证相关推荐
- [L1 - 15分合集]吉老师的回归
L1-078 吉老师的回归 分数 15 作者 陈越 单位 浙江大学 题目: 曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦! 为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的. ...
- [L1 - 10分合集]奇偶分家
L1-022 奇偶分家 分数 10 作者 陈越 单位 浙江大学 题目: 给定N个正整数,请统计奇数和偶数各有多少个? 输入格式: 输入第一行给出一个正整N(≤1000):第2行给出N个非负整数,以空格 ...
- [L1 - 10分合集]大笨钟
L1-018 大笨钟 分数 10 作者 陈越 单位 浙江大学 题目: 微博上有个自称"大笨钟V"的家伙,每天敲钟催促码农们爱惜身体早点睡觉.不过由于笨钟自己作息也不是很规律,所以敲 ...
- [L1 - 5分合集]种钻石
L1-082 种钻石 分数 5 作者 陈越 单位 浙江大学 题目: 2019年10月29日,中央电视台专题报道,中国科学院在培育钻石领域,取得科技突破.科学家们用金刚石的籽晶片作为种子,利用甲烷气体在 ...
- [L1 - 5分合集]后天
L1-024 后天 分数 5 作者 陈越 单位 浙江大学 题目: 如果今天是星期三,后天就是星期五:如果今天是星期六,后天就是星期一.我们用数字1到7对应星期一到星期日.给定某一天,请你输出那天的&q ...
- [L1 - 5分合集]PTA使我精神焕发
L1-057 PTA使我精神焕发 分数 5 作者 陈越 单位 浙江大学 题目: 以上是湖北经济学院同学的大作.本题就请你用汉语拼音输出这句话. 输入格式: 本题没有输入. 输出格式: 在一行中按照样例 ...
- 团队程序设计天梯赛考点内容总结(15分以上题)
L1: L1-002 打印沙漏 (20 分) 字符模拟 L1-003 个位数统计 (15 分) 字符模拟 L1-005 考试座位号 (15 分) 模拟 L1-006 连续因子 (20 分) 数学因数分 ...
- 7-21 查验身份证 (15 分)
7-21 查验身份证 (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, ...
最新文章
- mysql中char与varchar的区别分析(补充一句,int和integer没区别)
- UC伯克利新机器人成果:灵活自由地使用工具
- How to Build Your Own Blockchain Part 4.1 — Bitcoin Proof of Work Difficulty Explained
- alm数据库mysql_mysql
- 手册中数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留的理解
- Spring框架帮助文档目录
- Git小乌龟汉化步骤
- WOMic 使用wifi 将手机作为电脑麦克风音频输入
- win10系统word2016出现错误 “429 ActiveX部件不能创建对象”
- 一人一猫旅行记之浅析单例模式
- kmplayer android官方下载,KMPlayer下载
- 裸机服务器装系统步骤,组装裸机如何装系统?
- CCF: 201409-1-相邻数对(C++)
- C++生日聚会(BFS)
- 实在人做实干型产品——专访凯特伟业CEO云凤程
- Tomcat日志记录post请求参数
- python英汉字典,Python基于有道实现英汉字典功能,python英汉字典
- 高通打开wifi驱动的log
- Pytorch教程入门系列3
- 高光谱解混:基于几何,统计,稀疏回归的方法概述