login

Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.

n-th positive integer whose digits sum up to n.
5

%I #14 Mar 02 2024 13:37:47

%S 1,11,21,31,41,51,61,71,81,109,137,165,193,257,294,376,467,567,676,

%T 785,894,1399,1778,1986,2887,3869,4869,5878,6887,7896,8959,9968,18798,

%U 26998,35999,45999,56899,66989,76998,87799,97889,178899,199798,298988,398988

%N n-th positive integer whose digits sum up to n.

%H Robert Israel, <a href="/A081927/b081927.txt">Table of n, a(n) for n = 1..8989</a>

%F From _Robert Israel_, Feb 20 2018: (Start)

%F a(9*k-j) = (12-j)*10^(k-1) - 10^(k-10) - 10^(j+k-45) - 1 for j=2..9, k >= 45-j.

%F a(9*k-1) = 2*10^k - 10^(k-9) - 10^(k-35) - 1, k >= 35. (End)

%e 31 is the 4th integer of the sequence and the 4th number whose digits sum up to 4 : 4, 13, 22, [31], 103, 112, 121, 130, ...

%e 109 is the 10th integer of the sequence and the 10th number whose digits sum up to 10 : 19, 28, 37, 46, 55, 64, 73, 82, 91, [109], 118, 127, 136, ...

%p f:= proc(n) local Res, d, v, count;

%p count:= 0;

%p for d from ceil(n/9) while count < n do

%p v:= g(n,d,n-count,1);

%p Res:= v[-1];

%p count:= count + nops(v);

%p od:

%p Res

%p end proc:

%p g:= proc(n,d,remain) local rem, Res, j, j0, v;

%p if remain = 0 then return [] else rem:= remain fi;

%p if nargs = 4 then j0:= 1 else j0:= 0 fi;

%p if d = 1 then if n >= j0 and n <= 9 then [n] else [] fi

%p else

%p Res:= NULL;

%p for j from max(j0, ceil(n-9*(d-1))) to min(9,n) while rem > 0 do

%p v:= map(t -> j*10^(d-1)+t, procname(n-j,d-1,rem));

%p Res:= Res, op(v);

%p rem:= rem - nops(v);

%p od;

%p [Res]

%p fi

%p end proc:

%p map(f, [$1..200]); # _Robert Israel_, Feb 19 2018

%t Table[Select[Range[500000],Total[IntegerDigits[#]]==n&][[n]],{n,45}] (* _Harvey P. Dale_, Mar 02 2024 *)

%Y Leading diagonal of A081926.

%Y Cf. A081928, A181178

%K base,nonn

%O 1,2

%A _Amarnath Murthy_, Apr 01 2003

%E Corrected and extended by _Ray Chandler_, Oct 29 2003