%I #14 Apr 09 2016 16:50:03
%S 0,1,2,3,4,5,6,7,170,171,172,173,174,175,176,177,160,161,162,163,164,
%T 165,166,167,150,151,152,153,154,155,156,157,140,141,142,143,144,145,
%U 146,147,130,131,132,133,134,135,136,137,120,121,122,123,124,125,126
%N Numbers in base -8.
%D D. E. Knuth, The Art of Computer Programming. Addison-Wesley, Reading, MA, 1969, Vol. 2, p. 189.
%H Reinhard Zumkeller, <a href="/A073789/b073789.txt">Table of n, a(n) for n = 0..10000</a>
%H Prepared and presented by Matthew Szudzik of Wolfram Research, <a href="http://library.wolfram.com/conferences/devconf99/challenge/">A Mathematica programming contest</a>
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/Negabinary.html">Negabinary</a>
%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Negative_base">Negative base</a>
%t ToNegaBases[i_Integer, b_Integer] := FromDigits[ Rest[ Reverse[ Mod[ NestWhileList[(#1 - Mod[ #1, b])/-b &, i, #1 != 0 &], b]]]]; Table[ ToNegaBases[n, 8], {n, 0, 60}]
%o (Haskell)
%o a073789 0 = 0
%o a073789 n = a073789 n' * 10 + m where
%o (n', m) = if r < 0 then (q + 1, r + 8) else (q, r)
%o where (q, r) = quotRem n (negate 8)
%o -- _Reinhard Zumkeller_, Jul 07 2012
%o (Python)
%o def A073789(n):
%o s, q = '', n
%o while q >= 8 or q < 0:
%o q, r = divmod(q, -8)
%o if r < 0:
%o q += 1
%o r += 8
%o s += str(r)
%o return int(str(q)+s[::-1]) # _Chai Wah Wu_, Apr 09 2016
%Y Cf. A007094, A039724, A073785, A007608, A073786, A073787, A073788, A073790 & A039723.
%K base,easy,nonn
%O 0,3
%A _Robert G. Wilson v_, Aug 11 2002