原题链接:蓝桥杯算法训练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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复