pta乙级1031查验身份证(AC)
思路:
1.把18位的身份证分成18个字符
2.先判断前17位是否全为数字,若不是,直接输出这些字符;若是,直接计算出他们加权的结果,得出Z,与M比较。
#include<bits/stdc++.h>
using namespace std;
int main()
{char a[20];int n=0,z=0,num=0,judge=0,flag=0;int b[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};cin>>n;for(int i=1;i<=n;i++){int pd=0;for(int j=0;j<18;j++) cin>>a[j];for(int k=0;k<=16;k++){if(a[k]>'9'||a[k]<'0'){pd++;if(flag==1) cout<<endl;for(int j=0;j<18;j++){judge++;pd++;cout<<a[j]; }flag=1;}}num=0;for(int k=0;k<=16;k++) num+=b[k]*(a[k]-'0');z=num%11;if((z==0&&a[17]!='1')||(z==1&&a[17]!='0')||(z==2&&a[17]!='X')||(z==3&&a[17]!='9')||(z==4&&a[17]!='8')||(z==5&&a[17]!='7')||(z==6&&a[17]!='6')||(z==7&&a[17]!='5')||(z==8&&a[17]!='4')||(z==9&&a[17]!='3')||(z==10&&a[17]!='2')){if(pd==0){judge++;if(flag==1) cout<<endl;printf("%s",a);flag=1;} } }if(judge==0) cout<<"All passed";
}
错误:num第一次计算完忘记清0了,导致答案一直不对。
感觉最后Z和M的对应可以改进一下,用十一进制来做,有机会发一下。
pta乙级1031查验身份证(AC)相关推荐
- C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- PAT乙级 1031 查验身份证 (15 分)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- PAT 乙级 1031 查验身份证 (15分)
1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2, ...
- PAT乙级1031 查验身份证
1031. 查验身份证(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个合法的身份证号码由17位地区. ...
- PAT乙级(1031 查验身份证)
PAT乙级1031题解题: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}:然后将计算的和对11取模得到值Z:最后按照以下关系对应Z ...
- pat 乙级 1031 查验身份证(C++)
题目 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5 ...
- [PAT乙级]1031 查验身份证
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
- PAT 乙级 1031. 查验身份证(15) Java版
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
- 乙级--1031 查验身份证 (15分)(中等)
题目描述:(15) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7 ...
最新文章
- python包pip安装_python包管理之Pip安装及使用
- Windows 程序员必备的知识和工具
- Mac 勿扰模式周期性开关闭功能实现脚本
- 一个IP绑定多个域名(虚拟主机)设置方法
- 博为峰JavaEE技术文章 ——MyBatis 简介(2)
- 2进制、8进制、10进制、16进制...各种进制间的轻松转换(c#)
- rust拆掉墙_rust怎么拆自己的墙
- Eclipse JPA Project创建
- 数据库中字段为CLOB的属性,在Java实体类中将CLOB转化为String
- gis统计百分比_ArcGIS数据统计
- C# 生成多张excel 并打包
- Horner法则(秦九韶算法 )的程序实现
- 环信第三方集成 -- 移动客服
- android 动画直播,直播动画实现方案一
- 魔方APP项目-04-用户模块API接口、Marshmallow,基本构造器(Schema),Schema数据序列化、Schema数据反序列化、反序列化对数据验证、模型构造器(ModelSchema)
- 铿锵玫瑰回来了 男足还是臭脚吗
- Python-print 函数之换行
- Netty channelRegistered\ChannelActive---源码分析
- 【论文笔记】Deep Reinforcement Learning Control of Hand-Eye Coordination with a Software Retina
- CAD图库,别墅设计图纸免费资源分享
热门文章
- Super Resolve Dynamic Scene from Continuous Spike Streams
- 项目众包 开源项目_如何通过开源项目获利并保持活力
- 新浪微博 QQ登录 登陆授权 V1.0
- 人工智能书籍——《奇点临近》
- Linux内核平台设备驱动模型platform_device和platform_driver框架
- 电子计算机的字母是什么意思,电脑硬件的型号中的数字和字母都代表什么意思...
- 去除字符串中的表情符号以及判断字符串中是否存在表情符号
- 抖音上农民伯伯出的题,真的会难倒清华北大的高材生吗?
- Failed to launch wechat web devTools, please make sure http port is open【自动化测试】
- 共筑数字化未来,金山办公携手华为云完成文档中心和GaussDB适配