用户7402377495 2021-12-07 10:31 采纳率: 50%
浏览 259
已结题

01:数制转换python

01:数制转换
查看提交统计提问
总时间限制: 1000ms 内存限制: 65536kB
描述
求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,.,9,a,b,.,f)或者(0,1,.,9,A,B,.,F)。

输入
输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。
a,b是十进制整数,2 =< a,b <= 16。
输出
输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,.,9,A,B,.,F)。
样例输入
15 Aab3 7
样例输出
210306

  • 写回答

2条回答 默认 最新

  • 关注

    思路,现将n进制转换为10进制,随后将其转换为b进制数,有帮助请采纳,谢谢

    def convert10_n(n, base):
        _ = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 'A', 'B', "C", "D", "E", "F"]
        d = _[n % base]
        mark = n // base
        if mark > 0:
            return convert10_n(mark, base) + d
        else:
            return d
    def a_n_b(a,n,b):
        return int(convert10_n(int(n,a),b))
    print(a_n_b(15 ,'Aab3', 7))
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日