Pascal:把1-8这8个数放入下图8个格中,要求相邻的格(横,竖,对角线)上填的数不连续.
来源:百度知道 编辑:UC知道 时间:2024/07/04 05:16:00
program exampleb;
const link:array[1..6,1..2] of integer=
((1,2),(1,4),(2,5),(4,7),(5,8),(7,8));
var b:array[1..8] of integer;
procedure print;
begin
writeln(' ',b[1]:2);
writeln(b[2]:2,b[3]:2,b[4]:2);
writeln(b[5]:2,b[6]:2,b[7]:2);
writeln(' ',b[8]:2)
end;
function choose:boolean;
var i: integer;
begin
for i:=1 to 6 do
if abs(b[link[i, 1]] - b[link[i ,2]]) = 1 then exit(false);
exit(true);
end;
procedure try;
begin
for b[2]:=3 to 6 do
for b[4]:= 3 to 6 do
if b[2]<>b[4] then
for b[5]:= 3 to 6 do
if (b[5]<>b[2]) and (b[5]<>b[4]) then
begin
b[7]:= 18 - b[2] - b[4] - b[5];
if choose then print;
end;
end;
begin
b[1]:=2;b[3]:=8;b[