参考代码:

def turn(n,m):
#n进制的m转换为十进制(2~16进制通用)
    dic={'A':10,'B':11,'C':12,'D':13,'E':14,'F':15}
    m=str(m)
    ans=0
    for item in m:
        if 'A'<=item<='F':
            item=dic[item]
        ans=ans*n+int(item)
    return ans
def back(n,m):
#十进制的m转换为n进制(2~16进制通用)
    dic = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F'}
  ss=''
  while m!=0:
      tmp=m%n
    if 10<=tmp<=n:
        tmp=dic[tmp]
    ss=ss+str(tmp)
    m=m//n
  ss=ss[::-1]
   return ss
def calculate(x):
#判断回文
    tmp=str(x)
    if tmp==tmp[::-1]:
        return True
    return False
n=eval(input())
m=str(input().strip())
times=1
x=turn(n,m)
rev=turn(n,m[::-1])
k=back(n,x+rev)
while times<=30:
    if calculate(k)==True:
        print(f'STEP={times}')
        break
    else:
        x=turn(n,k)
        rev=turn(n,k[::-1])
        k=back(n,x+rev)
        times+=1
if times>30:
    print('Impossible!')


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论