【PAT乙级1031】——查验身份证

2024-02-04 06:48
文章标签 pat 身份证 查验 乙级 1031

本文主要是介绍【PAT乙级1031】——查验身份证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路:
看题知意,按照题目意思模拟一下即可;

代码如下,提交使用g++

#include<bits/stdc++.h>
using namespace std;int main()
{int weight[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};char check[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};int n, count=0, wSum;string id;cin >> n;for(int k=1; k<=n; k++){bool flag = true;	//前 17 位是否是数字标记 cin >> id;wSum = 0;for(int i=0; i<=16; i++)//检查计算前17位{if(isdigit(id[i]))	//当前位是数字,权值累加 {				wSum += (id[i]-'0')*weight[i];}else				//否则这个id前17有不是数字的,标记后退出循环 {flag = false;break;	}}if(flag)				//id前17位是数字,则继续检查校验位 {wSum %= 11;if(check[wSum]==id[17])	 {count++;		//查验通过,计数器自加; }else{cout << id << endl;}}else{cout << id <<endl;}}if(count==n)				 printf("All passed"); return 0;
}

【Debug过程】:全部通过的时候,All passed 没有打印出来,随即检查,在程序中是以count(查验通过)的数量是否等于n来做条件的,但是在一开始检查每个id的时候,大循环是用的while(n–),这就导致了最后n必然等于0,从而导致最后判断条件错误;【改用for循环,或者循环之前把n复制一份】

这篇关于【PAT乙级1031】——查验身份证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676651

相关文章

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。 实现过程概述: 模块与功能: re 模块:用于从 OCR 识别出的文本中提取所需的信息。 日期模块:计算年龄。 pandas:处理和操作表格数据。 PaddleOCR:百度的

贷款利率高低跟什么有关?仅凭身份证就能贷到款?额度是多少?

在金融的广阔舞台上,借款人的“信用基石”——即其综合资质,是决定贷款利率高低的决定性因素。这并非偶然,而是银行基于详尽的风险评估与收益预期所做出的精准判断。 需明确的是,贷款的易得性并不意味着无门槛的放任。它更像是设置了一个更为宽泛的准入标准,让多样化的借款人能够有机会尝试,但能否真正获得贷款,还需依据个人的经济实力、职业稳定性及信用历史的纯净度来综合评判。银行的核心考量始终在于确保资金的安

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

Node.js实名认证接口示例-身份证、银行卡、手机号实名认证

随着互联网的高速发展,人们可以发表言论的渠道越来越多。网络平台不断汲取各地、各人、各时发表的各种信息。人们喜欢将信息发布到微博、知乎、天涯、豆瓣等等网络平台,逐步的,网络信息进入大爆炸时代。这些大量涌现的信息中难免掺杂着一些不良信息,比如:虚假信息、污言秽语、违法违规信息的发布。这些信息充斥其中,严重影响了网络的环境。   若想拥有一片安全、绿色的网络环境,那么就要让所有人意识到自己需要承担

一款支持身份证、驾驶证、护照、车牌等证件识别插件

CardOCR 证件识别是一个apk插件,为应用开发方提供身份证、驾驶证、车牌号、护照等的OCR识别服务,如通过扫描身份证,可以快速识别二代身份证上的身份证号等信息,并将这些信息返回给第三方应用。 最新版本的OCR识别库具备以下明显优势: 识别率大幅提高,车牌号和身份证正常情况下毫秒级完成识别,成功率达到99%以上。车牌识别除了支持普通的蓝色、黄色、警用等车牌外,同时也支持新能源车牌。驾驶证

阿里云身份证二要素详细使用

初步: 先登录阿里云(找官网链接) 2、云市场搜索身份证二要素 看个人需求选择 3、我选择的是下边这个 4、接下来看文档具体调用(在请求示例中有选择语言的代码 我选择的就是java) 5、在控制台看appcode码  放入代码中 6、接下来就可以运行代码看结果 示例 我做了个小案例 创建一个项目写一个简单的接口Postman测试该接口 得到结果

C++身份证实名认证-实名制-身份证三要素认证-身份认证-身份验真-接口

身份证实名认证一般是指通过一定的技术,对用户的身份进行确认的过程,常见的身份证核验方式包括身份证二要素、二要素+人像、手机号、银行卡等的一系列认证方式。   身份证核验一般需要提供身份证号码、姓名、证件人像、现场人像要素信息来与权威数据库中的信息进行匹配,以此来确认用户的真实身份。   C++身份证实名认证接口示例: #include #include #include int mai

C++发票查验-发票验真-发票真伪查验-发票ocr识别-数电票真伪-接口

发票查验接口,是指通过特定的技术手段和服务平台,对发票的真伪进行验证和识别的一项服务。在现代商业活动中,发票作为一种重要的财务和法律凭证,其真实性对于维护税务秩序和防范财务风险至关重要。   随着技术的进步,人工智能和OCR(光学字符识别)技术也被应用于发票查验之中。通过OCR技术,可以自动识别发票上的文本信息,包括发票号码、代码、金额等关键信息,并自动完成查验。这种技术不仅提高了查验效率

九度考研真题 浙大 2009-1浙大1031:xxx定律

//1031:xxx定律 #include<iostream> using namespace std; int main(){ int n; while(cin>>n&&n!=0){ int num=0; while(n!=1){ if(n%2==0){ n/=2; num++; } else{ n=3*n+1; n/