PAT (Basic Level) Practice 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
鸣谢阜阳师范学院范建中老师补充数据
鸣谢浙江工业大学之江学院石洗凡老师纠正数据
解题:
#include<stdio.h> int main()
{
int n,i,j,z;
int flag=1;
char m[11]={'1','0','X','9','8','7','6','5','4','3','2'};
char arr[101][19];//字符数组多一位 '\0'
scanf("%d\n",&n);
//while(~scanf("%s\n",arr[i++])&&getchar()!='\n');
for(i=0;i<n;i++)
{
scanf("%s\n",arr[i]);
}
//printf("%s\n",arr[0]);
for(i=0;i<n;i++)
{
z=((arr[i][0]-'0')*7+(arr[i][1]-'0')*9+(arr[i][2]-'0')*10+(arr[i][3]-'0')*5+(arr[i][4]-'0')*8+(arr[i][5]-'0')*4+(arr[i][6]-'0')*2+(arr[i][7]-'0')*1+(arr[i][8]-'0')*6+(arr[i][9]-'0')*3+(arr[i][10]-'0')*7+(arr[i][11]-'0')*9+(arr[i][12]-'0')*10+(arr[i][13]-'0')*5+(arr[i][14]-'0')*8+(arr[i][15]-'0')*4+(arr[i][16]-'0')*2)%11;
//if(z<0) z+=10;
//printf("%d\n",z);
if(m[z]!=arr[i][17])
{
flag=0;
printf("%s\n",arr[i]);
}
}
if(flag==1) printf("All passed");
return 0;
}
PAT (Basic Level) Practice 1031 查验身份证 分数 15的更多相关文章
- PAT (Basic Level) Practice 1026 程序运行时间 分数 15
要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间.这个时间单位是 clock ...
- PAT (Basic Level) Practice 1021 个位数统计 分数 15
给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数.例如:给定 N= ...
- PAT (Basic Level) Practice 1030 完美数列 分数 25
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...
- PAT (Basic Level) Practice 1029 旧键盘 分数 20
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 2 行中分别给出应该输入的文字.以及 ...
- PAT (Basic Level) Practice 1028 人口普查 分数 20
某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的--假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...
- PAT (Basic Level) Practice 1027 打印沙漏 分数 20
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓"沙漏形状",是指 ...
- PAT (Basic Level) Practice 1025 反转链表 分数 25
给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4:如果 K 为 4,则输出应该 ...
- PAT (Basic Level) Practice 1019 数字黑洞 分数 20
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有" ...
- PAT (Basic Level) Practice 1013 数素数 分数 20
令 Pi 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输出从 PM 到 ...
随机推荐
- Solution -「树上杂题?」专练
主要是记录思路,不要被刚开始错误方向带偏了 www 「CF1110F」Nearest Leaf 特殊性质:先序遍历即为 \(1 \to n\),可得出:叶子节点编号递增或可在不改变树形态的基础上调整为 ...
- ETL工具 (二)sqoop 数据同步工具
Sqoop简介 将关系数据库(oracle.mysql.postgresql等)数据与hadoop数据进行转换的工具. 官网: http://sqoop.apache.org/ 版本:(两个版本完全不 ...
- 2022-7-13 第五组 pan小堂 java基础
###java基础 1.java语言发展史和概述平台(了解) 詹姆斯·高斯林(James Gosling)1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机 ...
- 使用centos linux vps搭建jupyter notebook踩坑日记
今天我尝试用vps搭建在线jupyter notebook网站时遇到了这样一个问题: [W 21:48:07.243 NotebookApp] SSL Error on 9 ('171.115.101 ...
- React Native环境配置、初始化项目、打包安装到手机,以及开发小知识
1.前言 环境:Win10 + Android 已经在Windows电脑上安装好 Node(v14+).Git.Yarn. JDK(v11) javac -version javac 11.0.15. ...
- 理解vue中v-for循环中得key原理及一些错误
作用:给节点做一个标识,相当于人类的身份证号,虚拟DOM中的标识 下列是key值的一些使用场景和带来的问题: js: const vm = new Vue({ el: ...
- Apache DolphinScheduler 使用文档(2-3/8):集群规划及环境准备
本文章经授权转载,原文链接: https://blog.csdn.net/MiaoSO/article/details/104770720 目录 2. 集群规划 2.1 集群配置 2.2 软件版本 2 ...
- ApacheCon 2020 参会指南
每年一度的 Apache 北美大会因为疫情的原因转到线上来举行了, 这次会议的主题是 ApacheCon@Home, 也就是说借助网络我们可以足不出户就可以参加 Apache 大会了.今年的会议为了针 ...
- MySQL查询关键数据方法
MySQL查询关键数据方法 操作表的SQL语句补充 1.修改表名 alter table 表名 reame 新表名: 2.新增字段名 alter table 表名 add 字段名 字段类型(数字) 约 ...
- 【NOI P模拟赛】(要素过多的标题)(容斥原理)
题面 0 题目背景 [ 数 据 删 除 ] _{^{[数\,据\,删\,除]}} [数据删除] 1 题目描述 在执行任务时,收集到了 n n n 份能源,其中第 i i i 份的能量值是 ...