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...
现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。 输入格式: 输入第一行给出正整数N(<= 100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。 输出格式: 按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位...
int N = 0, sum = 0, flag = 0, n = 0; // 输入身份证号码的个数 N scanf("%d", &N); // 循环处理每一个身份证号码 for (int i = 0; i < N; i++) { sum = 0; // 初始化总和,存储前17位数字与系数相乘后的累加结果 char num3[18]; // 定义字符数组 num3 用于存储输入的身份...
L1-016 查验身份证 #include <iostream>#include<algorithm>#include<cmath>#include#include<cstdio>#include<sstream>#include<cstring>#include<cctype>usingnamespacestd;#definemaxn 3000intmain() {stringids[maxn] ;intN,count=0; cin>>N;intweight[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5...
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 值,而无法得到正确的校验码 M。这算误打误撞了。 PAT (Basic Level) 1031 查验身份证 (15 point(s)) #include <bits/stdc++.h> using namespace std; ...
&想做的小伙伴可以戳记这里:L1-016 查验身份证 #include<iostream> #include<cstdio> #include<cstring> using namespace std; int main(void) { int n, x = 0; char a[20]; memset(a, 0, sizeof(a)); int b[20]; int t[] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 }; ...
L1-016. 查验身份证 题目: 一个合法的身份证号码由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...
按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。 输入样例1: 4 320124198808240056 12010X198901011234 110108196711301866 37070419881216001X ...
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的值:...