当前位置:  开发笔记 > 编程语言 > 正文

在python中将十进制转换为三元组(base3)

如何解决《在python中将十进制转换为三元组(base3)》经验,为你挑选了2个好方法。



1> poke..:

我的想法是继续划分,直到商和余数相等,但我似乎无法让它工作.

是的,类似的东西.基本上,你想要继续除以3,并收集余数.然后剩余部分构成最终数字.在Python中,您可以使用divmod分割和收集余数.

def ternary (n):
    if n == 0:
        return '0'
    nums = []
    while n:
        n, r = divmod(n, 3)
        nums.append(str(r))
    return ''.join(reversed(nums))

例子:

>>> ternary(0)
'0'
>>> ternary(1)
'1'
>>> ternary(2)
'2'
>>> ternary(3)
'10'
>>> ternary(12)
'110'
>>> ternary(22)
'211'



2> Chris Muelle..:

这也可以通过递归来完成.

def ternary(n):
    e = n//3
    q = n%3
    if n == 0:
        return '0'
    elif e == 0:
        return str(q)
    else:
        return ternary(e) + str(q)

更一般地说,您可以使用以下递归函数转换为任何基b(where 2<=b<=10).

def baseb(n, b):
    e = n//b
    q = n%b
    if n == 0:
        return '0'
    elif e == 0:
        return str(q)
    else:
        return baseb(e, b) + str(q)

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有