Cod sursa(job #560338)

Utilizator dutzu93Vlad Vedinas dutzu93 Data 18 martie 2011 14:06:50
Problema Cifra Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.42 kb
var
    t,i,ul,er:longint;
    u:array[0..100] of integer;
    s:string;

function ultima(l,n:byte):byte;
    begin
        case l of
            0:begin ultima:=0; exit; end;
            1:begin ultima:=1; exit; end;
            2:
            begin
                case n mod 4 of
                    0:begin ultima:=6; exit; end;
                    1:begin ultima:=2; exit; end;
                    2:begin ultima:=4; exit; end;
                    3:begin ultima:=8; exit; end;
                end;
            end;
            3:
            begin
                case n mod 4 of
                    0:begin ultima:=1; exit; end;
                    1:begin ultima:=3; exit; end;
                    2:begin ultima:=9; exit; end;
                    3:begin ultima:=7; exit; end;
                end;
            end;
            4:
            begin
                case n mod 2 of
                    1:begin ultima:=4; 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 n mod 4 of
                    0:begin ultima:=1; exit; end;
                    1:begin ultima:=7; exit; end;
                    2:begin ultima:=9; exit; end;
                    3:begin ultima:=3; exit; end;
                end;
            end;
            8:
            begin
                case n mod 4 of
                    0:begin ultima:=6; exit; end;
                    1:begin ultima:=8; exit; end;
                    2:begin ultima:=4; exit; end;
                    3:begin ultima:=2; exit; end;
                end;
            end;
            9:
            begin
                case n mod 2 of
                    0:begin ultima:=1; exit; end;
                    1:begin ultima:=9; exit; end;
                end;
            end;
        end;
    end;

begin
    u[0]:=0;
    for i:=1 to 99 do u[i]:=(u[i-1]+ultima(i mod 10, i)) mod 10;
    assign(input,'cifra.in');reset(input);
    assign(output,'cifra.out');rewrite(output);
    readln(t);
        for i:=1 to t do begin
            readln(s);
            ul:=0;
            if length(s)>1 then val(s[length(s)-1]+s[length(s)],ul,er)
            else val(s[length(s)],ul,er);
            writeln(u[ul]);
        end;
    close(input);close(output);
end.