如何使用具有平衡三元数的否定函数?

时间:2017-10-17 00:15:10

标签: python ternary negate

我一直试图通过python

中的否定函数转换平衡的三元数
def convert_to_balanced_ternary(n):
if n == 0:
    return '0'
negative = n < 0
bt = ''
while n > 0:
    r = n % 3
    if r == 0:
        bt = '0' + bt
        n = n // 3
    elif r == 1:
        if negative:
            bt = '-' + bt
        else:
            bt = '+' + bt
        n = n // 3
    else: 
        if negative:
            bt = '+' + bt
        else:
            bt = '-' + bt
        n = (n + 1) // 3
return bt

def negate(n):
    temp = n.replace('-', '+') or n.replace('+', '-') or n.replace('0', '0')
    return temp

我可以将' - '转换为'+',但'+'不会转换为' - '。 “0”似乎正好通过了。

negate('+-0')
'++0'

0 个答案:

没有答案