Cod sursa(job #535844)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 17 februarie 2011 20:27:35
Problema Cifra Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.38 kb
var     i,j,k,t,n:longint;
        s:string;
        f,f2:text;
        a:array[0..100] of integer;

begin
  assign(f,'cifra.in');
  reset(f);
  readln(f,t);
  assign(f2,'cifra.out');
  rewrite(f2);

  a[1]:=1;
  for i:=2 to 100 do
  if i mod 10=0 then a[i]:=a[i-1] else
  if i mod 10=1 then a[i]:=(a[i-1]+1) mod 10 else
  if i mod 10=5 then a[i]:=(a[i-1]+5) mod 10 else
  if i mod 10=6 then a[i]:=(a[i-1]+6) mod 10 else
  if ((i mod 10=2) and (i mod 4=0)) then a[i]:=(a[i-1]+6) mod 10 else
  if ((i mod 10=2) and (i mod 4=2)) then a[i]:=(a[i-1]+4) mod 10 else
  if ((i mod 10=3) and (i mod 4=1)) then a[i]:=(a[i-1]+3) mod 10 else
  if ((i mod 10=3) and (i mod 4=3)) then a[i]:=(a[i-1]+7) mod 10 else
  if i mod 10=9 then a[i]:=(a[i-1]+9) mod 10 else
  if i mod 10=4 then a[i]:=(a[i-1]+6) mod 10 else
  if ((i mod 10=7) and (i mod 4=1)) then a[i]:=(a[i-1]+7) mod 10 else
  if ((i mod 10=7) and (i mod 4=3)) then a[i]:=(a[i-1]+3) mod 10 else
  if ((i mod 10=8) and (i mod 4=0)) then a[i]:=(a[i-1]+6) mod 10 else
  if ((i mod 10=8) and (i mod 4=2)) then a[i]:=(a[i-1]+4) mod 10;
{  begin
    k:=1;
    for j:=1 to i do
      k:=k*i mod 10;
    a[i]:=(a[i-1]+k) mod 10;
  end;}

  for i:=1 to t do
    begin
      readln(f,s);
      if length(s)>2 then val(s[length(s)-1..length(s)],n)
      else val(s,n);
      writeln(f2,a[n])
    end;
  close(f2);
  close(f);
end.