Skip to content

Instantly share code, notes, and snippets.

@racterub
Created October 7, 2018 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save racterub/a13883e758fefb734d256b0f811f8f2f to your computer and use it in GitHub Desktop.
Save racterub/a13883e758fefb734d256b0f811f8f2f to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Date : 2018-10-06 23:05:41
# @Author : Racter (vivi.450@hotmail.com)
# @Profile : https://racterub.me
def change():
target = input()
if target == '0 0':
exit(0)
else:
target = target.strip().split(' ')
data = input().strip()
original_encode = int(target[0])
target_encode = int(target[1])
base = '0123456789'
padding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
if original_encode <= 10:
original_encoder = base[:original_encode]
else:
original_encoder = base + padding[:original_encoder-10]
if target_encode <= 10:
target_encoder = base[:original_encode]
else:
target_encoder = base + padding[:original_encode-10]
result = ''
dec_target = 0
data = data[::-1]
for i in range(len(data)):
dec_target += original_encoder.index(data[i]) * (original_encode**i)
while True:
if dec_target < 30:
result += target_encoder[dec_target]
print(result[::-1])
break
rest = dec_target % 30
remain = dec_target // 30
dec_target = remain
result += target_encoder[rest]
#Ans: B2KN28
#2 -> 30
change()
'''
2 30
2
'''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment