py求助,#4一直过不去,孩子真的找不到哪错了qwq

P1055 [NOIP2008 普及组] ISBN 号码

Horace_bear @ 2022-12-18 13:45:22

s=input().split('-')
x=s[0]+s[1]+s[2]
sum=0
n=0
for i in x:
    n+=1
    sum+=int(i)*n
if (sum%11==10 and str(s[3])=='X') or (sum%11!=10 and str(sum%11)==str(s[3])):
    print('Right')
else:
    if sum%11==10:
        s[3]='X'
    else:
        s[3]=str(sum%11)
    print('{}-{}-{}-{}'.format(s[0],s[1],s[2],s[3]))

by 阿丑 @ 2022-12-18 15:08:52

@Horace_bear

s=input().split('-')

建议改为

s=input().strip().split('-')

作用貌似是去掉末尾的空白字符。

在 Linux 下,input() 是读入到 \n 为止,但是 Windows 下的换行是 \r\n,所以如果评测机用 Linux 评测,数据却是在 Windows 下造的,那么 input() 就会多读一个 \r 导致 WA。


by Horace_bear @ 2022-12-18 15:31:24

@阿丑 啊过了,谢谢奆佬!


|