我一直试图通过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'