有一天小何来到一个陌生的星球上旅游,但这边的钱币上印有奇奇怪怪的符号和字母,小何看不懂,但他又想买东西(不吃东西要饿死的!),而你是在那个星球上唯一认识的人,于是就找来你帮他翻译下。
这个星球上不同的种族分别收不一样币种的钱币,而小何想买的东西也来自不同种族所开的店铺,因此他想知道,他手里的钱币换成另一种钱币它的币值将会变成多少。
那边的钱币不同的面额采用不同的进制,而且也没有阿拉伯数字,只有小写字母和符号表示,字母表示数字,而符号则表示它的币种(也就是代表是几进制的)。
符号 | 代表 |
---|---|
# | 7进制 |
$ | 17进制 |
^ | 2进制 |
而字母和数字的对应表如下:
字母 | 代表 |
---|---|
a | 0 |
b | 1 |
c | 2 |
... | ... |
j | 9 |
k | 10 |
l | 11 |
... | ... |
例如种类为#
的一个合法的币值为:#abc
, #bfa
。
输入描述
第一行仅包含一个整数T(1≤T≤100),代表有T组样例。
接下来的T行,每行包含一个币值和一个要求转换的目标币种。(数据保证没有前导0,也就是不存在类似#abc
这种由a开头的币值,同时也不会有0元这种存在。保证币值的长度不超过70,目标币种仅为1个字符。)
提示: 数据范围较大,请使用long long类型代替int。
输出描述
输出目标币种的币值(不能出现前导0)。
输入样例
3
#bac ^
$bahdgm #
^bab #
输出样例
^bbaabb
#bfceaedg
#f
提示
现将输入的币值换成十进制,再转换哦!
代码长度限制 16 KB 时间限制 800 ms 内存限制 256 MB
t = int(input())
def shi(a,b):#转换成十进制
s = 0
if a == '#':
num = 7
elif a == '$':
num = 17
elif a == '^':
num = 2
for i in range(len(b)):
s = (ord(b[i])-ord('a'))+s*num
return s
def jinzhi(a,b):#转换成对应进制
s = ''
if a == '#':
num = 7
elif a == '$':
num = 17
elif a == '^':
num = 2
while b//num>0:
t = b%num
s = chr(t+ord('a')) + s
b = b//num
s = a + chr(b+ord('a')) + s
return s
for i in range(t):
s,zhuan = input().split()
a = shi(s[0],s[1:])
b = jinzhi(zhuan,a)
print(b)