上代码:
#P1055 [NOIP2008 普及组] ISBN 号码
#输入ISBN号并转成列表
ISBN = input()
lis_ISBN = ISBN.split('-')
#计算和s
s = int(lis_ISBN[0])
i = 2
for each_number in lis_ISBN[1]:
s += int(each_number) * i
i += 1
for each_number in lis_ISBN[2]:
s += int(each_number) * i
i += 1
#按要求输出
if lis_ISBN[3] == 'X':
lis_ISBN[3] = 10
if s % 11 == int(lis_ISBN[3]):
print('Right')
else:
if s % 11 != 10:
lis_ISBN[3] = str(s % 11)
else:
lis_ISBN[3] = 'X'
print('-'.join(lis_ISBN))
疑惑的地方在于:我下载了测试点4的数据,发现在本地运行没问题呀。
测试点4数据如下:
输入:
6-670-82162-X
输出:
Right
然后我只改动了一行代码就AC了。改动的地方是:原句:
if lis_ISBN[3] == 'X':
改为:
if not(lis_ISBN[3].isdigit()):
所以,“if lis_ISBN[3] == 'X':”为什么有问题呢?