主题:回答正确者,发言2次(+50分)
QQ331373582
[专家分:1500] 发布于 2005-06-16 19:39:00
用递归过程做8皇后问T!
如果你回答,并答案是对的。
那么你发2次言(+50 FUN)
回复列表 (共6个回复)
沙发
zhsas [专家分:1680] 发布于 2005-06-17 16:52:00
太少了吧!发一次言不就是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.
板凳
relative660 [专家分:260] 发布于 2005-06-17 18:49:00
这种程序到处都有啦!!
3 楼
zhsas [专家分:1680] 发布于 2005-06-17 23:36:00
我说了,加多分就会给全的.
下次会给过程print
再下次就给过程try
三次就不给全了???
二楼的情子也太急了点.
这样也好呀,让大家想一想呀!!!!!!
4 楼
zhsas [专家分:1680] 发布于 2005-06-18 17:43:00
现在给过程print代码;
procedure print;
var
k:integer;
begin
for k:=1 to 8 do
write(x[k]:4);
writeln
end;
5 楼
zhsas [专家分:1680] 发布于 2005-07-01 01:00:00
现在给过程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 楼
hz10213534 [专家分:10] 发布于 2005-07-02 09:53:00
procedure print;
var
k:integer;
begin
for k:=1 to 8 do
write(x[k]:4);
writeln
end;
我来回复