Pagini recente » Cod sursa (job #1546442) | Cod sursa (job #88148) | Cod sursa (job #3261230) | Cod sursa (job #2691272) | Cod sursa (job #5679)
Cod sursa(job #5679)
program cifra;
type vector=array[1..100] of longint;
var s,s1:string;
v:vector;
e:integer;
t,i,sum,m,k,x,p:longint;
f,g:text;
begin
assign(f,'cifra.in');assign(g,'cifra.out');reset(f);rewrite(g);
readln(f,t);
for i:=1 to 100 do begin
v[i]:=1;
for k:=1 to i do v[i]:=(v[i]mod 1000)*i
end;p:=0;
for i:=1 to 100 do begin
p:=p+(v[i]mod 1000);
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:=v[100]*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)-2]='0')
then
for k:=length(s)-2 downto 1 do
if s[k]<>'0' then begin val(s[k],m,e);sum:=v[100]*m{-(v[m]mod 10)};k:=1;
while sum mod 10=0 do
sum:=sum div 10;
writeln(g,sum mod 10);end;
end;
end;
close(F);close(g);end.