【PAT乙级】1031 查验身份证 (15 分)
题目地址
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>using namespace std;string str[1005];
bool a[1005];
int b[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char c[17]={'1','0','X','9','8','7','6','5','4','3','2'};
int ans=0;int main(void)
{int t; cin>>t;for(int i=0;i<t;i++){cin>>str[i];int sum=0;for(int j=0;j<17;j++){if(str[i][j]>'9'||str[i][j]<'0') {a[i]=true;break;}else{sum+=(str[i][j]-'0')*b[j];}}if(!a[i]&&c[sum%11]!=str[i][17]) a[i]=true;if(a[i]) ans++;}if(!ans) cout<<"All passed";else{for(int i=0;i<t;i++){if(a[i]) cout<<str[i]<<endl;}}return 0;
}
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<map>
using namespace std;
int a[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
map<int,char>mp;
int main(void)
{mp[0]='1',mp[1]='0',mp[2]='X',mp[3]='9',mp[4]='8',mp[5]='7';mp[6]='6',mp[7]='5',mp[8]='4',mp[9]='3',mp[10]='2';int n; cin>>n;bool flag=false;for(int j=0;j<n;j++) {string s; cin>>s;int sum,i;sum=0;for(i=0;i<=16;i++){if(s[i]>='0'&&s[i]<='9') {sum+=(s[i]-'0')*a[i];}else {flag=true;cout<<s<<endl;break;}} if(i==17) if(mp[sum%11]!=s[17]) cout<<s<<endl,flag=true; }if(!flag) cout<<"All passed";return 0;
}
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int a[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char b[18]={'1','0','X','9','8','7','6','5','4','3','2'};
bool flag;
int main(void)
{int n; cin>>n;for(int i=0;i<n;i++){string s; cin>>s;int sum,j;sum=0;for(j=0;j<=16;j++){if(s[j]>='0'&&s[j]<='9'){sum+=(s[j]-'0')*a[j];}else{flag=true;cout<<s<<endl;break;}}if(j==17&&b[sum%11]!=s[17]) flag=true,cout<<s<<endl;}if(!flag) cout<<"All passed";return 0;
}
#include<bits/stdc++.h>
using namespace std;
vector<string>ans;
int a[20]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char b[20]={'1','0','X','9','8','7','6','5','4','3','2'};
int main(void)
{int n; cin>>n;while(n--){string s; cin>>s;bool flag=true;int sum=0;for(int i=0;i<s.size()-1;i++){if(s[i]<'0'||s[i]>'9'){flag=false;break;}sum=(sum+(s[i]-'0')*a[i])%11;}if(!flag) ans.push_back(s);else{if(b[sum]!=s[17]) ans.push_back(s);}}if(ans.size()==0){cout<<"All passed";return 0;}for(int i=0;i<ans.size();i++) cout<<ans[i]<<endl;return 0;
}
【PAT乙级】1031 查验身份证 (15 分)相关推荐
- 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, ...
- C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- 乙级--1031 查验身份证 (15分)(中等)
题目描述:(15) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7 ...
- PAT 乙级 1031. 查验身份证(15) Java版
一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...
- 【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟
problem 1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10, ...
- 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 ...
最新文章
- Facebook 发布深度学习工具包 PyTorch Hub,让论文复现变得更容易
- PHP报“Cannot start session without errors”
- Pasha and Phone
- 【AWSL】之Linux管理(RPM)程序
- flash 语法 入门
- Catalan数(数论)
- SSE图像算法优化系列十八:三次卷积插值的进一步SSE优化。
- POJ 1789(最小生成树)
- c# Hello World
- vue之神奇的动态按钮
- 读书感受 之 《乔布斯全书》
- 笔记本电脑开机黑屏没反应怎么办
- 2019 计蒜之道 初赛 第一场(A. 商汤的AI伴游小精灵)
- MATLAB数字图像课题的开题报告
- Restful 是什么? 怎么使用Restful
- iOS公司开发者账号申请详细教程
- 软件测试肖sir___面试题总结
- 黄聪:清理微信浏览网站的缓存,Cookie
- Quartus II无法打开
- tableau-当工作表没有数据时显示无