Balanced ternary: Difference between revisions

Content added Content deleted
(→‎{{header|11l}}: Small refactor)
Line 41: Line 41:
E
E
X ValueError(‘BalancedTernary: Wrong input digits.’)
X ValueError(‘BalancedTernary: Wrong input digits.’)

F :from_str(inp)
R BalancedTernary(reversed(inp).map(c -> BalancedTernary.:str2dig[c]))


F :int2ternary(n)
F :int2ternary(n)
Line 50: Line 53:
I n3 == 2 {R [-1] [+] .:int2ternary((n + 1) -I/ 3)}
I n3 == 2 {R [-1] [+] .:int2ternary((n + 1) -I/ 3)}
X RuntimeError(‘’)
X RuntimeError(‘’)

F :from_int(inp)
R BalancedTernary(BalancedTernary.int2ternary(inp))


F to_int()
F to_int()
Line 101: Line 107:
R BalancedTernary(_mul(.digits, b.digits))
R BalancedTernary(_mul(.digits, b.digits))


V a = BalancedTernary.from_str(‘+-0++0+’)
F createBalancedTernaryFromStr(inp)
R BalancedTernary(reversed(inp).map(c -> BalancedTernary.:str2dig[c]))
F createBalancedTernaryFromInt(inp)
R BalancedTernary(BalancedTernary.int2ternary(inp))

V a = createBalancedTernaryFromStr(‘+-0++0+’)
print(‘a: ’a.to_int()‘ ’a)
print(‘a: ’a.to_int()‘ ’a)


V b = createBalancedTernaryFromInt(-436)
V b = BalancedTernary.from_int(-436)
print(‘b: ’b.to_int()‘ ’b)
print(‘b: ’b.to_int()‘ ’b)


V c = createBalancedTernaryFromStr(‘+-++-’)
V c = BalancedTernary.from_str(‘+-++-’)
print(‘c: ’c.to_int()‘ ’c)
print(‘c: ’c.to_int()‘ ’c)