回 帖 发 新 帖 刷新版面

主题:回答正确者,发言2次(+50分)

用递归过程做8皇后问T!
如果你回答,并答案是对的。
那么你发2次言(+50 FUN)

回复列表 (共6个回复)

沙发

太少了吧!发一次言不就是25分?哪先给你一个主程序吧!
program zhs (input,output);
  var
    x:array[1..8] of integer;
    a,b,c:array[-7..16] of boolean;
    i:integer;
  procedure print;
    {如果加好多分的话,下次就给你这个}
  procedure try(i:integer);
    {如果加好多分的话,下次就给你这个}
  begin
    for i:=-7 to 16 do
      begin
        a[i]:=true;
        b[i]:=true;
        c[i]:=true
      end;
    try(1)
  end.

板凳

这种程序到处都有啦!!

3 楼

我说了,加多分就会给全的.
下次会给过程print
再下次就给过程try
三次就不给全了???
二楼的情子也太急了点.
这样也好呀,让大家想一想呀!!!!!!

4 楼

现在给过程print代码;
procedure print;
  var
    k:integer;
  begin
    for k:=1 to 8 do
      write(x[k]:4);
    writeln
  end;

5 楼

现在给过程try:
program try (i:integer);
  var
    j:integer;
  begin
    for j:=1 to 8 do
      if a[j] and b[i+j] and c[i-j]
        then begin
               x[i]:=j;
               a[j]:=false;
               b[i+j]:=false;
               c[i-j]:=false;
               if i < 8
                 then try(i+1)
                 else print;
               a[j]:=true;
               b[i+j]:=true;
               c[i-j]:=true
             end
  end;
  

6 楼

procedure print;
  var
    k:integer;
  begin
    for k:=1 to 8 do
      write(x[k]:4);
    writeln
  end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册