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

发布于 2021-01-29 18:01:44

我试图在python函数中使三进制十进制数。我的想法是继续除法,直到商和余数相等,但是我似乎无法使它起作用。这是我的代码:

l = 1


#problem code
def ternary(n):
    e = n/3
    q = n%3
    e= n/3
    q= e%3
    print q

r = input("What number should I convert?: ")
k = bin(r)
v = hex(r)
i = oct(r)
print k+"(Binary)"
print v+"(Hex)"
print i+"(Octals)"
ternary(r)
l+=1
# Variables:
#l,r,k,v,i 
#n,q,e
关注者
0
被浏览
228
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我的想法是继续除法,直到商和余数相等,但是我似乎无法使它起作用。

    是的,类似的东西。本质上,您希望保持除以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'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看