Cod sursa(job #5655)

Utilizator mariuscris90giuroiu marius mariuscris90 Data 13 ianuarie 2007 17:16:13
Problema Cifra Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.3 kb
program cifra;
type vector=array[1..100] of integer;
var s,s1:string;
    v:vector;
    e:integer;
    t,i,sum,m,j,x,p:longint;
    f,g:text;
begin
assign(f,'date.out');assign(g,'cifra.out');reset(f);rewrite(g);
readln(f,t);
for i:=1 to 100 do begin
v[i]:=1;
for j:=1 to i do v[i]:=(v[i] mod 10)*(i mod 10);
end;p:=0;
for i:=1 to 100 do begin
p:=p+(v[i]mod 10);
v[i]:=p;end;
for i:=1 to t do begin
readln(f,s);
if length(s)<=2 then begin val(s,m,e);
sum:=v[m];
while sum mod 10=0 do
sum:=sum div 10;
writeln(g,sum mod 10);end;
if length(s)>2 then begin
if (s[length(s)-2]='0')and((s[length(s)-1]<>'0')or(s[length(s)]<>'0'))  then
begin s1:=s[length(s)-1]+s[length(s)];
if s1[1]='0' then s1:=s1[2];
val(s1,m,e);
sum:=v[m];
while sum mod 10=0 do
sum:=sum div 10;
writeln(g,sum mod 10);end;
if s[length(s)-2]<>'0' then begin val(s[length(s)-2],m,e);
s1:=s[length(s)-1]+s[length(s)];
if s1[1]='0' then s1:=s1[2];
val(s1,x,e);sum:=470*m+v[x];
while sum mod 10=0 do
sum:=sum div 10;
writeln(g,sum mod 10);
end;
if (s[length(s)]='0')and (s[length(s)-1]='0')and (s[length(s)-1]='0')
then
for j:=length(s)-2 downto 1 do
if s[j]<>'0' then begin val(s[j],m,e);sum:=470*m;j:=1;
while sum mod 10=0 do
sum:=sum div 10;
writeln(g,sum mod 10);end;
end;
end;
close(F);close(g);end.