题解 | #[NOIP1999]回文数#

[NOIP1999]回文数

https://www.nowcoder.com/practice/a432eb24b3534c27bdd1377869886ebb

x ={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,
'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
x_c = ['0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F']
def hui(s):
    flag = 0
    l = int(len(s)/2)
    for i in range(l):
        if s[i] != s[len(s)-i-1]:
            flag = 1
            break
    return flag
def fun(c,n):
    res = []
    temp = 0
    ct  = 0
    loop = len(str(c))
    num1 = list(c)
    num2 = num1[::-1]
    for i in range(loop):
        temp = x[num1[i]]+x[num2[i]]+ct
        if temp >= n:
            temp -= n
            ct = 1
        else:
            ct = 0
        res.append(x_c[temp])
    if ct == 1:
        res.append(x_c[ct])
    ans = ''.join(res)
    ans = ans[::-1]
    return ans
n = int(input())
m = input()
count = 0
while hui(m) and count <= 30:
    m = fun(m,n)
    count +=1
if count <= 30:
    print('STEP={}'.format(count))
else:
    print('Impossible!')

定义一个函数判断字符串是否是回文

定义一个函数实现任意进制互反相加,输出仍是一个字符

主程序循环判断当前字符串是否为回文,不是互反相加再判断

全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务