SISULeo @ 2022-11-14 22:17:34
isbn = input().strip()
total = (int(isbn[0]) + 2 * int(isbn[2]) + 3 * int(isbn[3]) + 4 * int(isbn[4]) + 5 * int(isbn[6]) + 6 * int(isbn[7]) + 7
* int(isbn[8]) + 8 * int(isbn[9]) + 9 * int(isbn[10]))
code = total % 11 #算出最后一位数
if isbn[-1] == "X":
if code != 10: #如果最后一位是X,但是算出来不是10就用算出来的数字替换
print(isbn.replace("X", str(code)))
elif code == 10:
print("Right") #如果算出来是10就说明输入的序列对了
else:
if int(isbn[-1]) == code:
print("Right") #如果最后一位是数字,且最后一位与算出来的相等,说明对了
elif int(isbn[-1]) != code:
if code == 10:
print(isbn[::-1].replace(isbn[0], "X", 1)[::-1]) #算出来的与输入的不相等,且算出来的等于10,用X代替
else:
print(isbn[::-1].replace(isbn[0], str(code), 1)[::-1]) #算出来的不为10,用算出来的数字代替
by SISULeo @ 2022-11-14 22:19:59
50分,大佬们帮看看哪里出问题了,或者哪里可以简化,谢谢!!