Cod sursa(job #505875)

Utilizator dutzu93Vlad Vedinas dutzu93 Data 4 decembrie 2010 12:05:01
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.79 kb
const nmax=30000;
var
    n:integer;
    a:array[1..nmax]of longint;

procedure citire;
    var
        i:longint;
    begin
        assign(input,'cifra.in');
        reset(input);
        readln(n);
        for i:=1 to n do
            readln(a[i]);
    end;

function ultima(c,p:longint):longint;
    begin
        case c of
            1:begin ultima:=1; exit; end;
            2:begin
                  case (p mod 4) of
                    1:begin ultima:=2; exit; end;
                    2:begin ultima:=4; exit; end;
                    3:begin ultima:=8; exit; end;
                    4:begin ultima:=6; exit; end;
                    0:begin ultima:=6; exit; end;
                  end;
              end;
            3:begin
              case (p mod 4) of
                    1:begin ultima:=3; exit; end;
                    2:begin ultima:=9; exit; end;
                    3:begin ultima:=7; exit; end;
                    4:begin ultima:=1; exit; end;
                    0:begin ultima:=1; exit; end;
                  end;
              end;
            4:begin
              case (p mod 2) of
                    1:begin ultima:=4; exit; end;
                    2:begin ultima:=6; exit; end;
                    0:begin ultima:=6; exit; end;
                  end;
              end;
            5:begin ultima:=5; exit; end;
            6:begin ultima:=6; exit; end;
            7:begin
              case (p mod 4) of
                    1:begin ultima:=7; exit; end;
                    2:begin ultima:=9; exit; end;
                    3:begin ultima:=3; exit; end;
                    4:begin ultima:=1; exit; end;
                    0:begin ultima:=1; exit; end;
                  end;
              end;
            8:begin
              case (p mod 4) of
                    1:begin ultima:=8; exit; end;
                    2:begin ultima:=4; exit; end;
                    3:begin ultima:=2; exit; end;
                    4:begin ultima:=6; exit; end;
                    0:begin ultima:=6; exit; end;
                  end;
              end;
            9:begin
              case (p mod 2) of
                    1:begin ultima:=9; exit; end;
                    2:begin ultima:=1; exit; end;
                    0:begin ultima:=1; exit; end;
                  end;
              end;
            0:begin ultima:=0; exit; end;
        end;
    end;

procedure hailamine;
    var
        i,j:longint;
        s:longint;
    begin
        assign(output,'cifra.out');
        rewrite(output);

        for i:=1 to n do begin
            s:=0;
            for j:=1 to a[i] do
                s:=s+ultima(j mod 10,j);
            writeln(s mod 10);
        end;
        close(output);
    end;

begin
    citire;
    hailamine;
end.