level 2
卧龙居士II
楼主
var
s:array[1..8] of integer;
i,total:integer;
function judge(top:integer):boolean;
var
p:boolean;
j:integer;
begin
p:=true;
if top>1 then
begin
j:=1;
while (j<top-1) and p do
if (s[j]=i) or (abs(s[j]-i)=abs(j-top)) then p:=false;
end;
judge:=p;
inc(j);
end;
procedure search(top:integer);
begin
if top>8 then
begin
inc(total);
write(total,' step: ');
for i:=1 to 8 do
begin
write(s[i],' ');
writeln;
end;
end;
for i:=1 to 8 do
if judge(top) then
begin
s[top]:=i;
search(top+1);
end;
end;
begin
total:=0;
search(1);
end.
2015年01月16日 05点01分
1
s:array[1..8] of integer;
i,total:integer;
function judge(top:integer):boolean;
var
p:boolean;
j:integer;
begin
p:=true;
if top>1 then
begin
j:=1;
while (j<top-1) and p do
if (s[j]=i) or (abs(s[j]-i)=abs(j-top)) then p:=false;
end;
judge:=p;
inc(j);
end;
procedure search(top:integer);
begin
if top>8 then
begin
inc(total);
write(total,' step: ');
for i:=1 to 8 do
begin
write(s[i],' ');
writeln;
end;
end;
for i:=1 to 8 do
if judge(top) then
begin
s[top]:=i;
search(top+1);
end;
end;
begin
total:=0;
search(1);
end.