PAT乙级(Basic Level)1031(C++)
来源:互联网 发布:阿里云服务器维护教程 编辑:程序博客网 时间:2024/05/22 11:27
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:432012419880824005612010X19890101123411010819671130186637070419881216001X
输出样例1:12010X19890101123411010819671130186637070419881216001X
输入样例2:2320124198808240056110108196711301862
输出样例2:All passed
#include<iostream>using namespace std;int main(){int quan[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//权值数组char num[19]={0}; char a[12]={"10X98765432"};int temp=0,count=0,k=0;int n;cin>>n;//输入N个身份证号for(int i=0;i<n;i++){//循环输入 scanf("%s",&num); for(int j=0;j<17;j++){//循环检验各位是否为数字且检验检验码的值 if(num[j]<'0'||num[j]>'9'){ break;}else{ temp+=((num[j]-'0')*quan[j]); count++;} if(count!=17||a[temp%11]!= num[17]){ k=printf("%s\n",num); } if (k==0) printf("All passed"); }} }
0 0
- PAT乙级(Basic Level)1041(C++)
- PAT乙级(Basic Level)1047(C++)
- PAT乙级(Basic Level)1027(C++)
- PAT乙级(Basic Level)1029(C++)
- PAT乙级(Basic Level)1008(C++)
- PAT乙级(Basic Level)1002(C++)
- PAT乙级(Basic Level)1032(C++)
- PAT乙级(Basic Level)1038(C++)
- PAT乙级(Basic Level)1011(C++)
- PAT乙级(Basic Level)1012(C++)
- PAT乙级(Basic Level)1048(C++)
- PAT乙级(Basic Level)1049(C++)
- PAT乙级(Basic Level)1031(C++)
- PAT乙级(Basic Level)1023(Java/C++)
- PAT乙级(Basic Level)1026(C++)
- PAT乙级(Basic Level)1004(C++/Java)
- PAT乙级(Basic Level)1018(C++)
- PAT乙级(Basic Level)1039(C++)
- #pragma once 与 #ifndef 解析
- asp.net表单提交方法:GET\POST介绍
- PageRank算法--从原理到实现
- 我的Android之旅(十三)---SharedPreferences---实现不同界面的联动
- Understanding andDiagnosing Visual Tracking Systems
- PAT乙级(Basic Level)1031(C++)
- TP框架中的增删改查
- Big Event in HDU
- genymotion adb connect 192.168.56.101 出错
- IntelliJ IDEA 常用设置讲解
- redis(一)
- lightoj 1275 - Internet Service Providers (基本数学-二元一次方程)
- Android生命周期
- Mac OSX Docker下搭建Android+Jenkins+Gitlab