开发者社区 问答 正文

一个程序:用递归算法(回溯法)做八皇后问题?

一个程序:用递归算法(回溯法)做八皇后问题?

展开
收起
知与谁同 2018-07-21 11:43:29 1614 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 胜天半子
    这个应该不错
    var a:array[0..11] of integer;
    n,k,t:integer;
    procedure p(k:integer);
    var i,j:integer;
    g:boolean;
    begin
    if k>n then begin
    for i:=1 to n-1 do
    write(a[i],' ');
    writeln(a[n]);
    t:=t+1;
    end
    else begin
    for i:=1 to n do begin
    g:=true;
    for j:=1 to k-1 do
    if (i=a[j]) or (abs(i-a[j])=abs(k-j)) then g:=false;
    if g then
    begin
    a[k]:=i;
    p(k+1);
    end;
    end;
    end;
    end;
    begin
    readln(n);
    t:=0;
    k:=1;
    p(k);
    if t=0 then writeln('no solute!');
    if t>0 then writeln(t);
    end.
    2019-07-17 22:55:30 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等