MULONE - Nhân 1

Tác giả: RR

Ngôn ngữ: Pascal

const
  MAXN=2000111;
var
  a:array[1..2000111] of longint;
  mod10,div10:array[0..2000111] of longint;
  i,u,nho,n,test:longint;
begin
  for i:=1 to 2000000 do
    begin
      mod10[i]:=mod10[i-1]+1;
      if mod10[i]=10 then
        begin
          mod10[i]:=0;
          div10[i]:=div10[i-1]+1;
        end
      else
        div10[i]:=div10[i-1];
    end;


  read(test);
  for test:=1 to test do
    begin
      read(n);
      u:=MAXN+1; nho:=0;

      for i:=1 to n do
        begin
          dec(u);
          a[u]:=mod10[i+nho];
          nho:=div10[i+nho];
        end;

      for i:=n-1 downto 1 do
        begin
          dec(u);
          a[u]:=mod10[i+nho];
          nho:=div10[i+nho];
        end;

      while (nho>0) do
        begin
          dec(u);
          a[u]:=mod10[nho];
          nho:=div10[nho];
        end;

      for i:=u to MAXN do write(a[i]);
      writeln;
    end;
end.

Download