社区讨论

Python求助

P1015[NOIP 1999 普及组] 回文数参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo1cakyd
此快照首次捕获于
2023/10/22 18:42
2 年前
此快照最后确认于
2023/11/02 19:03
2 年前
查看原帖
作为某Py社长我居然卡在这一题
四个测试点在Pycharm上都运行正确,但是放到洛谷上变成#1 WA,#234 RE。。。
以下是拙劣的代码:
PYTHON
# 75分,RE
# 当前代码0分,WA+RE
def ords(s):
    if 48 <= ord(s) <= 57:
        return int(s)
    else:
        return ord(s)-55


def chrs(x):
    if 0 <= x <= 9:
        return str(x)
    else:
        return chr(x+55)


n = int(input())
m = input()
ans = 0
possible = False
for i in range(30):
    length = len(m)
    ans += 1
    addition1 = list(m)
    addition2 = list(m)
    addition2.reverse()
    sums = []
    for j in range(length+1):
        sums.append(0)
    for j in range(length):
        item = length-j
        sums[item] += (ords(addition1[item-1])+ords(addition2[item-1]))
        if sums[item] >= n:
            sums[item] -= n
            sums[item-1] += 1
    for j in range(length+1):
        sums[j] = chrs(sums[j])
    a = list(sums)
    b = sums
    b.reverse()
    addition = ''
    if a[0] == '0':
        del a[0]
        del b[length]
        length -= 1
    for j in range(length+1):
        addition += a[j]
    a = addition
    addition = ''
    for j in range(length+1):
        addition += b[j]
    b = addition
    if a == b:
        possible = True
        break
    m = a
if possible:
    print('STEP=%d' % ans)
else:
    print('Impossible!')

Python用习惯了所以不太会写高精,多多见谅哈

回复

2 条回复,欢迎继续交流。

正在加载回复...