急求PASCAL版回溯法解八皇后问题

[复制链接]
查看11 | 回复0 | 2007-9-19 14:18:15 | 显示全部楼层 |阅读模式
我自己编的,仅供参考program dd;var
i,he:longint;
a,b:array[1..8] of boolean;
c,d:array[-7..16] of boolean;procedure cou(h,o:longint; var y:longint);
var
l:longint;begin
for l:=1 to 8 do
if a[h] and b[l] and c[h+l] and d[h-l] then begin
a[h]:=false;
b[l]:=false;
c[h+l]:=false;
d[h-l]:=false;
if h>=8 then y:=y+1
else cou(h+1,l,y);
a[h]:=true;
b[l]:=true;
c[h+l]:=true;
d[h-l]:=true;
end;end;beginfor i:=1 to 8 dobegin
a:=true;
b:=true;end;for i:=-7 to 16 dobegin
c:=true;
d:=true;end;he:=0;cou(1,1,he);writeln(he);end.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行