OFFSET
0,3
COMMENTS
When n - a(n)*10^[log_10 n] >= 10^[(log_10 n) - 1], where [] denotes floor, or when n < 100 and 10|n, n is the concatenation of a(n) and A217657(n). - Reinhard Zumkeller, Oct 10 2012, improved by M. F. Hasler, Nov 17 2018, and corrected by Glen Whitney, Jul 01 2022
Equivalent definition: The initial a(0) = 0 is followed by each digit in S = {1,...,9} once. Thereafter, repeat 10 times each digit in S. Then, repeat 100 times each digit in S, etc.
REFERENCES
N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
LINKS
David W. Wilson, Table of n, a(n) for n = 0..10000
A. Cobham, Uniform Tag Sequences, Mathematical Systems Theory, 6 (1972), 164-192.
FORMULA
a(n) = [n / 10^([log_10(n)])] where [] denotes floor and log_10(n) is the logarithm is base 10. - Dan Fux (dan.fux(AT)OpenGaia.com or danfux(AT)OpenGaia.com), Apr 07 2001
a(n) = k for k*10^j <= n < (k+1)*10^j for some j. - M. F. Hasler, Mar 23 2015
EXAMPLE
23 begins with a 2, so a(23) = 2.
MAPLE
Ldigit:=proc(n) local v; v:=convert(n, base, 10); v[-1]; end;
[seq(Ldigit(n), n=0..200)]; # N. J. A. Sloane, Feb 10 2017
MATHEMATICA
Join[{0}, First[IntegerDigits[#]]&/@Range[90]] (* Harvey P. Dale, Mar 01 2011 *)
Table[Floor[n/10^(Floor[Log10[n]])], {n, 1, 50}] (* G. C. Greubel, May 16 2017 *)
Table[NumberDigit[n, IntegerLength[n]-1], {n, 0, 100}] (* Harvey P. Dale, Aug 29 2021 *)
PROG
(PARI) a(n)=if(n<10, n, a(n\10)) \\ Mainly for illustration.
(PARI) A000030(n)=n\10^logint(n+!n, 10) \\ Twice as fast as a(n)=digits(n)[1]. Before digits() was added in PARI v.2.6.0 (2013), one could use, e.g., Vecsmall(Str(n))[1]-48. - M. F. Hasler, Nov 17 2018
(Haskell) a000030 = until (< 10) (`div` 10) -- Reinhard Zumkeller, Feb 20 2012, Feb 11 2011
(Magma) [Intseq(n)[#Intseq(n)]: n in [1..100]]; // Vincenzo Librandi, Nov 17 2018
(Python)
def a(n): return int(str(n)[0])
print([a(n) for n in range(85)]) # Michael S. Branicky, Jul 01 2022
CROSSREFS
KEYWORD
AUTHOR
STATUS
approved