RosettaCodeData/Task/Balanced-ternary/AutoHotkey/balanced-ternary-1.ahk
2014-04-02 16:56:35 +00:00

22 lines
407 B
AutoHotkey

BalancedTernary(n){
k = 0
if abs(n)<2
return n=1?"+":n=0?"0":"-"
if n<1
negative := true, n:= -1*n
while !break {
d := Mod(n, 3**(k+1)) / 3**k
d := d=2?-1:d
n := n - (d * 3**k)
r := (d=-1?"-":d=1?"+":0) . r
k++
if (n = 3**k)
r := "+" . r , break := true
}
if negative {
StringReplace, r, r, -,n, all
StringReplace, r, r, `+,-, all
StringReplace, r, r, n,+, all
}
return r
}