var
a,b:array[1..200,1..200] of integer;
c,d:array[1..200] of integer;
i,j,k,m,n,t,l1,num:integer;
s:string;
l:array[1..200] of integer;
procedure chuli;
var
i,j,k,m:integer;
begin
for i:=1 to t do
if c[i]<>maxint then begin
for j:=1 to l[i] do begin
a[i,j]:=a[i,j]*b[i,j];
d[i]:=d[i]+a[i,j];
end;
end;
end;
procedure pd;
var
i,j,k:integer;
begin
for i:=1 to t do
for j:=1 to t do
if (c[j]<>maxint) and (d[i]=c[j]) then
begin
c[j]:=maxint;
num:=num-1;
end;
end;
procedure sort;
var
i,j,k:integer;
begin
for i:=1 to t-1 do
for j:=i+1 to t do
if c[i]>c[j] then begin
k:=c[i];
c[i]:=c[j];
c[j]:=k;
end;
end;
begin
readln(n);
readln(s);
l1:=length(s);
t:=1; k:=1;
for i:=1 to l1 do
begin
if s[i]<>’ ’ then begin c[t]:=c[t]*10+ord(s[i])-48;
l[t]:=l[t]+1;
b[t,k]:=ord(s[i])-48;k:=k+1; end
else begin t:=t+1; k:=1; end;
end;
d:=c;
a:=b;
num:=t;
for i:=1 to n do
begin
for j:=1 to t do
fillchar(d,sizeof(d),0);
chuli;
pd;
end;
sort;
for i:=1 to num do
if i=num then writeln(c[i]) else write(c[i],’ ’);
end.
说明一下,
数组B是用来记录每个数字的每一位数字
数组A用来记录每个数字每位数字的N次方
数组C用来记录每个数字
数组D用来记录进行N次处理后的每个数字,
有一个点不对,不知道那里错了。。。。。。。