L1-016 查验身份证
作者:
lvjj
,
2024-03-22 18:27:50
,
所有人可见
,
阅读 10
#include <bits/stdc++.h>
using namespace std;
int n;
int sum;
string str;
int M;
char Z[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
int main(){
cin>>n;
int count = 0;
for(int i=1;i<=n;i++){
sum=0;
cin>>str;
for(int j=0;j<17;j++) if(str[j]=='X'){
cout<<str<<endl;
break;
}else if(j==16){
sum = 7*(str[0]-'0')+9*(str[1]-'0')+10*(str[2]-'0')+5*(str[3]-'0')+8*(str[4]-'0')+4*(str[5]-'0')+2*(str[6]-'0')+1*(str[7]-'0')+6*(str[8]-'0')+3*(str[9]-'0')+7*(str[10]-'0')+9*(str[11]-'0')+10*(str[12]-'0')+5*(str[13]-'0')+8*(str[14]-'0')+4*(str[15]-'0')+2*(str[16]-'0');
//不必这个理会石山代码
if(Z[sum%11]==str[17])count++;
else cout<<str<<endl;
}
}
if(count==n)cout<<"All passed"<<endl;
return 0;
}