📄 roat4.pas
字号:
program dame;
type stiva=array[1..25] of integer;
var st:stiva;
n,k:integer;
as,ev:boolean;
procedure init(var st:stiva;k:integer);
begin
st[k]:=0;
end;
procedure succesor(var as:boolean;var st:stiva;k:integer);
begin
if st[k]<n then
begin
st[k]:=st[k]+1;
as:=true;
end
else as:=false;
end;
procedure valid(var ev:boolean;st:stiva;k:integer);
var i:integer;
begin
ev:=true;
for i:=1 to k-1 do
begin
if st[i]=st[k] then ev:=false;
if abs(st[k]-st[i])=abs(k-i) then ev:=false
end;
end;
function solutie(st:stiva;k:integer):boolean;
begin
solutie:=(n=k);
end;
procedure tipar;
var i:integer;
begin
for i:=1 to n do
write(st[i],' ');
writeln;
end;
begin
write('n=');
readln(n);
k:=1;
init(st,k);
while k>0 do
begin
repeat
succesor(as,st,k);
valid(ev,st,k);
until (not as) or (as and ev);
if as then if solutie(st,k) then tipar
else begin
k:=k+1;
init(st,k);
end
else k:=k-1;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -