一 链接
L1-016 查验身份证
二 题目
三 代码
#include<iostream>
using namespace std;
int main()
{
int n=0;
cin>>n;
string str[100];
int sum[100]={0};
int all=1;
int weight[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char Checksum[11]={'1','0','X','9','8','7','6','5','4','3','2'};
for(int i=0;i<n;i++)
{
cin>>str[i];
for(int j=0;j<17;j++)
{
sum[i]+=(str[i][j]-48)*weight[j];
// printf("%d:%d\n",j,(str[i][j]-48)*weight[j]);
}
// printf("sun没有/100:%d ",sum[i]);
sum[i]=sum[i]%11;
// printf("sum已取模:%d\n",sum[i]);
}
for(int k=0;k<n;k++)
{
if(Checksum[sum[k]]==str[k][17])
continue;
else
{
all=0;
cout<<str[k]<<endl;
}
}
if(all==1)
{
printf("All passed");
}
//cout<<7+9+10+5+8+4+2+1+6+3+7+9+10+5+8+4+2;
return 0;
}