原题链接:蓝桥杯算法训练VIP-回文数
参考代码:
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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复