1024 Palindromic Number
题目大意:回文子串模拟
def isPalindromic(a):
start=0
end=len(a)-1
while start<=end:
if a[start]!=a[end]:
return False
start+=1
end-=1
return True
def add(a,b):
carry=0
i=len(a)-1
j=len(b)-1
ret=""
while i>=0 and j>=0:
tmpa=int(a[i])
tmpb=int(b[j])
s=tmpa+tmpb+carry
ret+=str(s%10)
carry=int(s/10)
i-=1
j-=1
while i>=0:
s=int(a[i])+carry
ret+=str(s%10)
carry=int(s/10)
i-=1
while j>=0:
s=int(b[j])+carry
ret+=str(s%10)
carry=int(s/10)
j-=1
if carry>0:
ret+=str(carry)
return ''.join(list(reversed(ret)))
l=input().split()
n,k=l[0],int(l[1])
for i in range(k):
if isPalindromic(n):
print(n)
print(i)
break
n_rev=''.join(list(reversed(n)))
n=add(n,n_rev)
if i==k-1:
print(n)
print(i+1)
这篇博客探讨了如何实现一个回文子串的判断函数isPalindromic(),并利用该函数进行特定数的加法操作。在加法过程中,将一个数与它的反转数相加,并检查结果是否为回文。代码中详细展示了加法的实现过程,包括处理进位。最后,根据给定的输入,输出符合条件的回文数及其出现位置。
1162

被折叠的 条评论
为什么被折叠?



