题目叙述
问题描述:略
输入格式:略
输出格式:略
样例
样例输入
0-670-82162-4
样例输出
Right
样例输入
0-670-82162-0
样例输出
0-670-82162-4
满分证明
解题思路
- 先进行测试,最后一位是10,则变为X:
- 匹配全正确 输出right;
- 匹配不正确有两种情况:
(1)校验位不对,需要更改为X
(2)校验位不对,需要更改为数字
注意int与string之间的转化,巧用逆序索引;
注意X,不管输入正确还是输入错误都要用;
匿名函数,列表相乘lambda.
满分代码
a = input()
s = a.replace('-', '')
L = list(map(int, s[:-1]))
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
m = sum(list(map(lambda x, y: x * y, L, num)))
flat = s[len(s) - 1]
p = m % 11
if p == 10:
temp = "X"
else:
temp = p
if str(temp) == flat:
print("Right")
else:
print(a[:-1] + str(temp))
需者自取传送门(∩ᄑ_ᄑ)⊃━☆【CCF 2013-2021】本博主整理历年至少前两题 python 满分代码目录