7-45 小何的旅行I分数 25

有一天小何来到一个陌生的星球上旅游,但这边的钱币上印有奇奇怪怪的符号和字母,小何看不懂,但他又想买东西(不吃东西要饿死的!),而你是在那个星球上唯一认识的人,于是就找来你帮他翻译下。

这个星球上不同的种族分别收不一样币种的钱币,而小何想买的东西也来自不同种族所开的店铺,因此他想知道,他手里的钱币换成另一种钱币它的币值将会变成多少。

那边的钱币不同的面额采用不同的进制,而且也没有阿拉伯数字,只有小写字母符号表示,字母表示数字,而符号则表示它的币种(也就是代表是几进制的)。

符号代表
#7进制
$17进制
^2进制

而字母和数字的对应表如下:

字母代表
a0
b1
c2
......
j9
k10
l11
......

例如种类为#的一个合法的币值为:#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)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值