EAN码是国际物品编码协会制定的一种商品用条码,通用于全世界。EAN码符号有标准版(EAN-13)和缩短版(EAN-8)两种。标准版表示13位数字,又称为EAN13码,缩短版表示8位数字,又称EAN8。两种条码的最后一位为校验位,由前面的12位或7位数字计算得出。EAN13码包括13位数字2位分隔符,其规定格式如“x-xxxxxx-xxxxxx”,其中符号“-”就是分隔符(键盘上的减号)。
校验码的计算方法如下:
1)从代码位置序号2开始,所有偶数位的数字代码求和。
2)将步骤1的和乘以3。
3)从代码位置序号3开始,所有奇数位的数字代码求和。
4)将步骤2与步骤3的结果相加。
5)用大于或等于步骤4所得结果且为10最小整数倍的数减去步骤4所得结果,其差即为所求校验码的值。
例如:6-939334-351042的校验码X的计算如下:
自右向左顺序编号,如下表所示。
位置序号 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
代码 |
6 |
9 |
3 |
9 |
3 |
3 |
4 |
3 |
5 |
1 |
0 |
4 |
X |
偶数位 |
|
9 |
|
9 |
|
3 |
|
3 |
|
1 |
|
4 |
|
奇数位 |
6 |
|
3 |
|
3 |
|
4 |
|
5 |
|
0 |
|
|
步骤1:9+9+3+3+1+4=29
步骤2:29*3=87
步骤3:6+3+3+4+5+0=21
步骤4:87+21=108
步骤5:110-108=2
最终求得校验码X=2
你的任务是编写程序判断输入的EAN13码中校验码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的EAN13码。
输入只有一行,是一个字符序列,表示EAN13码(保证输入符合EAN13码的格式要求)。
【样例1】
2-342356-546521
【样例2】
9-787302-356288
【样例1】
2-342356-546527
【样例2】
Right