#include<stdio.h>
int main()
{
int power[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},Z=0,n,i,flag=1,illegal=0;
char M[11]={'1','0','X','9','8','7','6','5','4','3','2'},str[19];
scanf("%d",&n);
while(n--)
{
flag = 1;
Z = 0;
scanf("%s",str);
for(i=0; i<17; i++)
{
if(str[i]>='0' && str[i]<='9')
{
Z += (str[i] - '0') * power[i];
}
else //数字码中含有非数字
{
flag = 0;
illegal++;
}
}
Z = Z%11;
if(flag==1 && M[Z]!=str[17]) //校验位不符合
{
flag = 0;
illegal++;
}
if(flag==0)
printf("%s\n",str);
}
if(illegal==0)
printf("All passed");
return 0;
}
1031. 查验身份证(15)
最新推荐文章于 2023-02-06 19:06:15 发布