题解 | #[NOIP2008]ISBN号码#
[NOIP2008]ISBN号码
https://www.nowcoder.com/practice/95712f695f27434b9703394c98b78ee5
while True:
try:
a = input().strip() #输入字符串保存
test = a[12] #获取输入的最后一个字符作为被测对象
x = "".join(a.split("-"))[:-1] #获取输入的前12位作为运算对象
sum = 0 #定义变量存放运算结果
for i in range(len(x)): #开始干活,根据题意进行运算,注意str和int之间转换
sum = int(x[i]) * (i + 1) + sum
if sum % 11 < 10: #判断运算结果,如果小于10则直接保存为key;如果为10,则保存为"X"
key = sum % 11
else:
key = "X"
if str(key) == test: #开始比对输出,如果key和被测test相等,输出Right;否则输出前12位加X
print("Right")
else:
print(a[:12] + str(key))
except:
break
查看3道真题和解析