python解决十进制数转化为n进制数问题

对于十进制数转换为任意进制数,这是一个非常经典的问题,而且无论是日常工作还是生活当中都是有可能遇到的实际应用问题。

如果给定一个十进制的数num,需要将其转换成为n进制的数,对于n的范围是n在2-16之间。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

如上两个例子,对于将一个十进制的数转换为n进制数的固定算法就是使用除余,除n然后取余的方法,如果以num=89,n=2为例子:

添加图片注释,不超过 140 字(可选)

将各个步骤保存起来的0和1从下至上依次输出,得到的1011001即为89的二进制表示法,可以理解为89是由1x1+0x2+0x4+1x8+1x16+0x32+1x64所组成的,没执行一次就更新一次num值传给下一次处理,使用while循环来实现,结束条件就是num值更新为0的时候。

使用python实现的代码如下:

class solution():
    def func(self,num,n):
        str_list=[]
       dic={0:'0',1:'1',2:'2',3:'3',4:'4',5:'5',6:'6',7:'7',8:'8',9:'9',10:'A',
           11:'B',12:'C',13:'D',14:'E',15:'F'}
        while True:
            if num==0:
                break
            next_num=num//n
            add_num=num%n
            str_list.insert(0,str(dic[add_num]))    
            num=next_num
        return ''.join(str_list)  

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值