参考代码:
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语言训练-大、小写问题 (C语言代码)浏览:2351 |
C语言训练-最大数问题 (C语言代码)浏览:633 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:899 |
回文数字 (C语言代码)浏览:2510 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:551 |
【计算直线的交点数】 (C语言代码)浏览:918 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:523 |
C二级辅导-求偶数和 (C语言指针动态内存法)浏览:634 |
C语言训练-自由落体问题 (C语言代码)浏览:608 |
【亲和数】 (C语言代码)浏览:692 |