i don't understand what's wrong with my code:
It only passes 2/5 test cases...
program cifre;
var
n,p,c,d,k : longint;
function ex(a,b : integer) : longint;
var
rez : longint;
begin
rez := 1;
while b > 0 do
begin
if odd(b) then rez := rez*a;
b := b div 2;
a:= sqr(a);
end;
ex := rez;
end;
begin
readln(n);
p := 9;
c := 1;
while n > p do
begin
n := n-p;
p := p*10+9*ex(10,c);
c := c+1;
end;
if n mod c = 0 then
d := n div c -1
else d := n div c;
d := d+ex(10,c-1);
if n mod c = 0 then writeln(d mod 10)
else
begin
k := n mod c;
while k > 0 do
begin
d := d div 10;
k := k-1;
end;
writeln(d mod 10);
end;
end. It only passes 2/5 test cases...