321
社区成员




回文数是一个非负整数,它的各位数字从高位到低位和从低位到高位的排列是相同的。 以下是一些回文数的例子: 0 1 33 525 7997 37273 现在给到一个数,求离它最近的一个回文数(离与它的差的绝对值最小)。如果这个数本身就是回文数,那么就输出它本身。
暂时没考虑算法,用例范围小,暴力计算即可。
n,p = int(input()),0
while True:
if str(n + p) == str(n + p)[::-1]:
print(n + p)
break
if str(n - p) == str(n - p)[::-1]:
print(n - p)
break
p += 1
然后想起一个小伙伴曾经私聊,说应该有更简单的办法,不用暴力。。。。今天试了试,算法没弄出来,C 站用例试出来了。。。
n = input()
l = len(n)
print(n[:(l + 1) // 2] + n[:l // 2][::-1])