手抜き版
nにm=3^(k+1)+3^k...+1を加算すると、akは{-1,0,1}+1->{0,1,2}で、
一般的な3進数のためIntegerDigits[#,3]で係数を取得する。つぎにmを
引いて(各係数から1を引く結果akの範囲は{-1,0,1})nに戻したあと、
//〜で整形処理ばぃ

ex.
f[n_] := IntegerDigits[n + (3^(Floor[Log[3, n]] + 2) - 1)/2, 3] - 1 //
If[First[#] == 0, Rest[#], #] & // Rest