题解 | #进制转换#

进制转换

https://www.nowcoder.com/practice/2cc32b88fff94d7e8fd458b8c7b25ec1

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 进制转换
# @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判断一下就行了
全部评论

相关推荐

那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务