[比赛/考试专用OJ] 该 OJ 与 oj.socoding.cn 数据不互通,首次使用请注册账号。

1029. ID卡校验(20分)

一个符合要求的人员ID号由十七位数字本体码和一位数字校验码组成。校验码的工作原理如下所示: 一开始要对前十七位数字分配权重之后再求和,权重的分配情况为:

{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}

然后将计算的和对11取模得到值Z;最后按照以下关系上下对应Z值与校验码M的值:

Z:0 1 2 3 4 5 6 7 8 9 10

M:1 0 X 9 8 7 6 5 4 3 2

如果计算出的Z和M对不上,说明ID号有问题。

题目说的很清楚了X表示什么,请仔细阅读题目!

现在给定一些ID号,请你验证校验码并对不正确的ID号进行操作: 如果ID号的前17位均为数字,则请输出正确的ID号; 如果前17位不全为数字,则将输入的ID号输出后再额外输出error。

输入

输入第一行给出正整数N(≤100)是输入的人员ID号的个数。随后N行,每行给出1个18位人员ID号。

输出

如果所有号码都正常,则输出All passed。 如果有号码不正常,若号码前17位均为数字,则输出正确的ID号,否则直接输出错误的ID号+error

样例

标准输入 复制文本
4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X
标准输出 复制文本
12010X198901011234error
110108196711301862
370704198812160012
标准输入 复制文本
2
320124198808240056
110108196711301862
标准输出 复制文本
All passed
登录以提交代码。
单点时限 1 秒
内存限制 256 MB
提交 13
通过 8