login
Numbers in base -8.
11

%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