【PAT乙级】1031 查验身份证 (15 分)
15 PAT 身份证 乙级
2023-09-11 14:15:52 时间
#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;
}
相关文章
- 在Linux平台下每5、10或15分钟执行一次定时任务(Cron Job)
- 筛选100米范围内而且方位角相差15度以内的基站
- 《惢客创业日记》2020.11.15-17(周日)谁有谁的四十不惑?
- 《惢客创业日记》2020.07.15(周三)不一样的拒绝经济
- 【赶快收藏】15道Python常见面试题及答案!
- 4月13日,每天30秒,昨夜今晨一览无余/两款iPhone 15 Pro将取消固态按键设计/法国正在考虑对苹果采取反垄断行动
- 【PAT乙级】1051 复数乘法 (15 分)
- 【PAT乙级】1046 划拳 (15 分)
- 【PAT乙级】1021 个位数统计 (15 分)
- 【PAT乙级】1086 就不告诉你 (15 分)
- 【PAT乙级】1076 Wifi密码 (15 分)
- 【PAT乙级】1016 部分A+B (15 分)
- 【PAT乙级】1001 害死人不偿命的(3n+1)猜想 (15 分)
- 工作15年 | 担任2022校招面试官的几点感悟,值得每个大学生细看
- 给系统管理员的 15 条实用 Linux/Unix 磁带管理命令
- Linux 网络性能的 15 个优化建议。
- 《开源硬件创客——15个酷应用玩转树莓派》——6.3RaspNAS
- 剑指 Offer 15. 二进制中1的个数
- Mac navicat 15
- 15.selenium_case01
- 百度如何能实时检索到15分钟前新生成的网页?--转
- GE好忙 短短15天收购了三家物联网公司
- 工具推荐:2016年最佳的15款Android黑客工具