Cod sursa(job #40861)

Utilizator QbyxEros Lorand Qbyx Data 27 martie 2007 19:57:28
Problema Cifra Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.42 kb
program Cifre;
var
  akt, h,i, r: byte;
  Sum: array[0..100] of byte;
  s: string;
  f, g: text;
  e, n: integer;

begin
  n := 100;
  Sum[1] := 1;
  Sum[0] := 0;
  for i := 2 to 100 do
    begin
      Case i mod 10 of
        0: r := 0;
        1: r := 1;
        2: case i mod 4 of
             0: r := 6;
             1: r := 2;
             2: r := 4;
             3: r := 8;
           end;
        3: case i mod 4 of
             0: r := 1;
             1: r := 3;
             2: r := 9;
             3: r := 7;
           end;
        4: case i mod 2 of
             0: r := 6;
             1: r := 4;
           end;
        5: r := 5;
        6: r := 6;
        7: case i mod 4 of
             0: r := 1;
             1: r := 7;
             2: r := 9;
             3: r := 3;
           end;
        8: case i mod 4 of
             0: r := 6;
             1: r := 8;
             2: r := 4;
             3: r := 2;
           end;
        9: case i mod 2 of
             0: r := 1;
             1: r := 9;
           end;
      end;
      Sum[i] := (Sum[i - 1] + r) mod 10;
    end;
  Assign(f, 'cifra.in');
  Assign(g, 'cifra.out');
  ReWrite(g);
  Reset(f);
  ReadLn(f, n);
  for i := 1 to n do
    begin
      ReadLn(f, s);
      h := Length(s);
      if h <> 1 then s := s[h - 1] + s[h];
      Val(s,akt,h);
      WriteLn(g,sum[akt]);
    end;
  Close(f);
  Close(g);
end.