输入样例
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
输出样例
12010X198901011234
110108196711301866
37070419881216001X
代码
#include<bits/stdc++.h>
using namespace std;
int weight[20] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
char M[20] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
int main()
{
int n;
scanf("%d", &n);
bool flag = true;
char str[20];
for(int i = 0; i < n; i++){
scanf("%s", &str);
int j, sum = 0;
for(j = 0; j < 17; j++) {
if(str[j] < '0' && str[j] > '9') break;
sum += (str[j] - '0') * weight[j];
}
if(j < 17) {
flag = false;
printf("%s\n", str);
} else {
if(str[17] != M[sum % 11]) {
flag = false;
printf("%s\n", str);
}
}
}
if(flag == true) {
printf("All passed\n");
}
}