南宁区建设银行招聘网站,仿 手机 网站模板html,游戏优化大师下载安装,免费做logo目录 1、L1-016 查验身份证
2、如果帮助到大家了#xff0c;希望大家一键三连#xff01;#xff01;#xff01;
1、L1-016 查验身份证
分数 15
题目通道
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下#xff1a;
首…目录 1、L1-016 查验身份证
2、如果帮助到大家了希望大家一键三连
1、L1-016 查验身份证
分数 15
题目通道
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下
首先对前17位数字加权求和权重分配为{7910584216379105842}然后将计算的和对11取模得到值Z最后按照以下关系对应Z值与校验码M的值
Z0 1 2 3 4 5 6 7 8 9 10
M1 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
320124198808240056
110108196711301862输出样例
All passed这道题考察简单模拟和字符串 将字符’9‘转换成十进制数字9的方法’9‘-’0‘相应数字9转换成字符’9‘的方法9’9‘ 问题 1、并不检验前17位是否合理只检查前17位是否全为数字 2、且最后1位校验码计算准确 1因为字母转换成十进制一定大于10所以不需要在判断了 2if(c[17]!b[num])//与最后一位字符比较 { flag1; printf(%s\n,c); } #include bits/stdc.h
using namespace std;
int main(){int a[17]{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//因为把5和8写在一起了导致半个多小时没出答案所以做题一定仔细 再仔细 char b[11]{1,0,X,9,8,7,6,5,4,3,2};char c[18];//要输入的数组 int n,flag0;//定义标识变量用于判断所有的身份证号都对 cinn;while(n--){int num0;scanf(%s,c);for(int i0;i16;i){num(c[i]-0)*a[i];//与权重相乘 }num%11;//取余 if(c[17]!b[num])//与最后一位字符比较 {flag1;printf(%s\n,c);} }if(flag0)coutAll passed;return 0;
}
2、如果帮助到大家了希望大家一键三连