OFFSET
0,3
COMMENTS
For n<100, this is the same result as "If n = Sum c_i 10^i then a(n) = Sum c_i (i+1)". - Henry Bottomley, Apr 20 2001
n_2 in the notation of A122618.
Left inverse of A007088 (binary numbers), cf. formula from Karttunen. - M. F. Hasler, Jun 13 2023
LINKS
Reinhard Zumkeller, Table of n, a(n) for n = 0..10000
Robin C. Yu, Decibinary Numbers, on Hackerrank.com.
FORMULA
a(n) = 2*a(floor(n/10)) + (n mod 10). - Henry Bottomley, Apr 20 2001
a(0) = 0, a(n) = 2*a(n/10) if n == 0 (mod 10), a(n) = a(n-1)+1 otherwise. - Benoit Cloitre, Dec 21 2002
For all n, a(A007088(n)) = n. - Antti Karttunen, Jun 22 2014
MATHEMATICA
a[n_ /; n < 10] := n; a[n_] := a[n] = If[Mod[n, 10] != 0, a[n-1] + 1, 2*a[n/10]]; Table[a[n], {n, 0, 100}] (* Jean-François Alcover, Apr 02 2016 *)
PROG
(PARI) a(n)=if(n<1, 0, if(n%10, a(n-1)+1, 2*a(n/10)))
(PARI) A028897(n)=fromdigits(digits(n), 2) \\ M. F. Hasler, Feb 14 2019
(MIT/GNU Scheme) (define (A028897 n) (let loop ((z 0) (i 0) (n n)) (if (zero? n) z (loop (+ z (* (modulo n 10) (expt 2 i))) (1+ i) (floor->exact (/ n 10)))))) ;; Antti Karttunen, Jun 22 2014
(Haskell)
a028897 0 = 0
a028897 n = 2 * a028897 n' + d where (n', d) = divMod n 10
-- Reinhard Zumkeller, Nov 06 2014
CROSSREFS
See A322000 for integers ordered according to the value of a(n).
KEYWORD
AUTHOR
EXTENSIONS
More terms from Erich Friedman.
Terms up to n = 100 added by Antti Karttunen, Jun 22 2014
STATUS
approved