问题:思路:先转换为十进制,再由十进制转换为目标进制。
代码:
def scale_transform_decimalism(M, num): # 转换为十进制
str_dict = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = 0
j = 0
for i in range(len(num)-1, -1, -1):
result += str_dict.index(num[i]) * M**j
j += 1
return result
def decimalism_transform_target(N, num): # 十进制转换为目标进制
str_dict = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
if num < N:
return str_dict(num)
return decimalism_transform_target(N, num // N) + str_dict[num % N] # 字符串拼接,这里用了递归
if __name__ == "__main__":
M, N = map(int, input().split())
num = input()
with_result = scale_transform_decimalism(M, num) # 十进制结果
result = decimalism_transform_target(N, with_result) # 最终结果
print(result)