Pascal难题急啊!!!完成加分!

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:26:13
有一个16宫图,将1-16,16个数字填入图内,使16宫图每横、竖、斜排的4个数相加等于34.
输出16宫图的每一种可能性

var i,j,k,l,n:integer;
st:string;
a:array[1023..9876]of integer;
begin
fillchar(s,sizeof(s),0);
n:=0;
for i:=1023 to 9876 do begin
str(i,st);
if(st[1]<>st[2])and(st[2]<>st[3])and(st[3]<>st[4])and(st[4]<>st[1])and(st[1]<>st[3])and(st[2]<>st[4])and(ord(st[1])+ord(st[2])+ord(st[3])+ord(st[4])-192=37)then begin
inc(n);
inc(a[n]);
end;
end;
for i:=1 to n do
for j:=1 to n do
for k:=1 to n do
for l:=1 to n do begin
if(a[a[i]div 1000+a[j]div 1000+a[k]div 1000+a[l]div 1000]]>0)and(a[a[i]div 100 mod 10+a[j]div 100 mod 10+a[k]div 100 mod 10+a[l]div 100 mod 10]]>0)and(a[a[i]div 10 mod 100+a[j]div 10 mod 100+a[k]div 10 mod 100+a[l]div 10 mod 100]]>0)and(a[a[i]mod 10+a[j]mod 10+a[k]mod 10+a[l]mod 10]]>0)then begin
writeln(i);
writeln(j);
writeln(k);
writeln(l);
writeln;
end;
end;
readln;
end.