【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟
problem
1031 查验身份证 (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
鸣谢阜阳师范学院范建中老师补充数据
鸣谢浙江工业大学之江学院石洗凡老师纠正数据
solution
直接模拟,写了大约10mins
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int z[] = {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'};
int main(){int n; cin>>n;int ok = 1;while(n--){string id; cin>>id;int sum = 0;for(int i = 0; i < id.size()-1; i++)sum += (id[i]-'0')*z[i];if(m[sum%11] != id[id.size()-1]){cout<<id<<"\n";ok = 0;}}if(ok)cout<<"All passed\n";return 0;
}
【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟相关推荐
- PAT乙级 1031 查验身份证 (15 分)
1031 查验身份证 (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, ...
- C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- 1031 查验身份证 (15 分)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- PAT 1031 查验身份证 (15分)(Java)
题目描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7, ...
- 【PAT乙级】1031 查验身份证 (15 分)
题目地址 #include<cstdio> #include<iostream> #include<cstring> #include<string>u ...
- PAT 乙级 1031. 查验身份证(15) Java版
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
- PAT:1031. 查验身份证(15) AC
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { int weight[17 ...
- 1031 查验身份证 (15分)_21行满分代码
立志用更少的代码做更高效的表达 PAT乙级最优题解-->传送门 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配 ...
最新文章
- Linux中的chmod权限问题
- pve 群晖 virtio速度慢_群晖DS Note高级教程——教你使用智能记事本
- CMU Facebook论文解读 | 非局部神经网络(附代码实现)
- 事故通报绝不能一报了事22344
- [翻译] VLDContextSheet
- 云付认证已通过可以支付吗_海科融通丨刷新支付日常问题【附交易操作步奏】...
- MapReduce:通过数据密集型文本处理
- linux强制停止压缩任务,6.25任务(linux压缩、打包命令:zip、tar)
- 事务的隔离级别 mysql
- eDiary电子日记本
- 蓝桥杯 ALGO-70 算法训练 最长字符串
- ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第五天(非原创)
- Poj 1755Triathlon 未Ac,先mark
- 开源 - WPF报表引擎
- win98万能显卡驱动_win98/98系统 u盘万能驱动
- python好玩的代码-我珍藏的一些好的Python代码,技巧
- 超详细SPSS主成分分析计算指标权重(二:权重计算及极差法标准化)
- python爬虫--第一个爬虫程序
- 测试京东万象的Webservice接口
- mmdet3d纯视觉baseline之数据准备:处理waymo dataset v1.3.1
热门文章
- utilities——C++常用仿函数
- Python基础——文件拷贝(从手动实现到shutil的使用)
- pageoffice 骑缝章_Java 集成PageOffice自带印章配置连接MySQL
- visual设计的界面发布到iis上显示不一样_Material Design暗夜模式设计指南
- 根据录入的计算公式计算_超全的铝材重量计算公式
- python画柱状图-Python绘制柱状图
- python基础教程代码-Python基础教程代码怎么是英文 看不懂啊?
- python是什么 自学-自学Python会有什么困难?老男孩自学python编程
- 语音识别(ASR)基础介绍第四篇——当今流行做法与CTC-阿里云开发者社区
- 逆置单链表c语言程序,逆置单链表C语言