PAT乙级1031 查验身份证 (15 分)
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}
以上是关于PAT乙级1031 查验身份证 (15 分)的主要内容,如果未能解决你的问题,请参考以下文章