首页 > 学院 > 开发设计 > 正文

八皇后

2019-11-08 02:32:29
字体:
来源:转载
供稿:网友
var ans,i,j,n,k:longint; a:array[1..13]of longint; s:array[1..13]of boolean; d1:array[2..26]of boolean; d2:array[-12..12]of boolean; PRocedure dfs(j:longint); var i:longint; begin  if j>n then  begin   inc(ans);   if (ans<=3)and(ans<>0) then    begin    for k:=1 to n do     write(a[k],' ');    writeln;    exit;    end;   exit;  end;  for i:=1 to n do   if (d1[i+j])and(d2[i-j])and(s[i]) then   begin   a[j]:=i;   s[i]:=false;   d1[i+j]:=false;   d2[i-j]:=false;   dfs(j+1);   s[i]:=true;   d1[i+j]:=true;   d2[i-j]:=true;   end; end;begin read(n); fillchar(s,sizeof(s),true); fillchar(d1,sizeof(d1),true); fillchar(d2,sizeof(d2),true); dfs(1); write(ans);end.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表