首页 > 试题广场 >

进制转换2

[编程题]进制转换2
  • 热度指数:15728 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
将M进制的数X转换为N进制的数输出。

输入描述:
输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。


输出描述:
输出X的N进制表示的数。
示例1

输入

10 2
11

输出

1011

备注:
注意输入时如有字母,则字母为大写,输出时如有字母,则字母为小写。
Python的
f = lambda x, r: f(x//r, r) + '0123456789abcdefghijklmnopqrstuvwxyz'[x%r] if x else '0'
r1, r2 = map(int, input().split())
print(f(int(input(), r1), r2).lstrip('0'))


发表于 2020-02-08 18:48:56 回复(0)
def data1(m,x):
    lenth=len(x)
    res=0
    for i in range(lenth):
        res+=int(list1.index(x[i]))*m**(lenth-1-i)
    return res
def data2(n,x):
    re=[]
    if x==0:
        return 0
    else:
        while x!=0:
            x,res=divmod(x,n)
            re.append(str(list1[res]))
        return ''.join(re[::-1])
while True:
    try:
        list1=['0','1','2','3','4','5','6','7','8','9',
              'A','B','C','D','E','F',
              'G','H','I','J','K','L',
              'M','N','O','P','Q','R',
              'S','T','U','V','W','X',
              'Y','Z']
        m,n=map(int,input().strip().split(' '))
        x=list(input().strip())
        #print(data1(m,x))
        result=data2(n,data1(m,x))
        print(result)
    except:
        break
发表于 2019-08-27 13:25:59 回复(0)

问题信息

上传者:小小
难度:
2条回答 6408浏览

热门推荐

通过挑战的用户

查看代码
进制转换2