#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 进制转换
# @param M int整型 给定整数
# @param N int整型 转换到的进制
# @return string字符串
#
class Solution:
    def solve(self , M: int, N: int) -> str:
        # write code here
        st = ''
        flag = False
        dic = {10:'A', 11:'B', 12:'C', 13:'D', 14:'E', 15:'F'}
        if M < 0:
            M = -M
            flag = True
        while M > 0:
            res = M % N
            if res in dic:
                st += dic[res]
            else:
                st += str(res)
            M //= N
        if flag:
            st += '-'
            return st[::-1]
        return st[::-1]

思考:
  1. 参考二进制的转换规则,对于十六进制可以考虑使用Python中的字典
  2. while M > 0,没有 = ,后面单步调试的时候才发现了这个问题
  3. 负数转进制其实也不复杂,加个flag判断一下就行了