Cod sursa(job #140948)

Utilizator SILVER_BOY22Dalalau Alexandru SILVER_BOY22 Data 22 februarie 2008 14:59:40
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.49 kb
program cifre;
var i,j,t,p,s,n:longint;
    l:integer;
    f,g:text;
    a:array[1..100] of byte;
    sir:string[100];
    sir1:string[2];
    c1,c2:char;
begin
      assign(f,'cifra.in');
     assign(g,'cifra.out');
     reset(f);
     rewrite(g);
     readln(f,t);
     a[1]:=1;
     a[2]:=5;
     a[3]:=2;
     a[4]:=8;
     a[5]:=3;
     a[6]:=9;
     a[7]:=2;
     a[8]:=8;
     a[9]:=7;
     a[10]:=7;
     a[11]:=8;
     a[12]:=4;
     a[13]:=7;
     a[14]:=3;
     a[15]:=8;
     a[16]:=4;
     a[17]:=1;
     a[18]:=5;
     a[19]:=4;
     a[20]:=4;
     for j:=1 to t do
     begin
          readln(f,sir);
          l:=length(sir);
          writeln(sir,' ',l);
          sir1:=copy(sir,l-1,2);{ultimele 2 cifre /mod 100}
          val(sir1,n,l);
          if n>80 then s:=a[20]*4+a[n mod 20]

          else if n>60 then s:=a[20]*3+a[n mod 20]
          else if n>40 then s:=a[20]*2+a[n mod 20]
          else if n>20 then s:=a[20]+a[n mod 20]
          else  s:=a[20]*3+a[n mod 20];




         { s:=(n div 20)*4;
          p:=0;
          for i:=1 to n do
          begin
            case (i mod 4) of
             0: p:=(i mod 10)*(i mod 10)*(i mod 10)*(i mod 10);
             1: p:=(i mod 10);
             2: p:=(i mod 10)*(i mod 10);
             3: p:=(i mod 10)*(i mod 10)*(i mod 10);
            end;
            s:=(s+p) mod 10;
          end;
          }
          writeln(g,s mod 10);
     end;
     close(f);
     close(g);
end.