Tải bản đầy đủ (.doc) (2 trang)

Tim vi tri 1000 la so bao nhieu cua day

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (17.9 KB, 2 trang )

Tim vi tri 1000 la so bao nhieu cua day
Const
fi='num.inp';
fo='num.out';
Var
cs:array[1..7] of longint = (9,180,2700,36000,450000,5400000,63000000);
n:longint;
f,g:text;
Function num(n:longint):char;
Var
k,so,mu:longint;
s:string;
Begin
k:=1;
mu:=1;
While (k<9) and (cs[k]Begin
n:=n-cs[k];
inc(k);
mu:=mu*10;
End;
If mu=1 then
so:=n div k
Else
so:=n div k+mu+ord(n mod k>0)-1;
Str(so,s);
s:=s[k]+s;
num:=s[n mod k + 1];
End;
Begin
Assign(f,fi);


Reset(f);
Assign(g,fo);
Rewrite(g);
While not seekeof(f) do
Begin
Readln(f,n);
Writeln(g,num(n));
End;
Close(f);
Close(g);
End.


var st: string;
j,n,d,x: longint;
i: integer;
f:text;
begin
clrscr;
write('Nhap n: ');readln(n);
i:=1;
j:=1;
d:=9;
x:=0;
while (n > d) do
begin
n:=n-d;
x:=x+d div i;
j:=j*10;
i:=i+1;

d:=j*9*i;
end;
x:=x+(n div i);
if n mod i>0 then
begin
x:=x+1;
i:=n mod i;
end;
str(x,st);
write('Ket qua: ',st[i]);
end.



×