全排列算法问题。。。。高手进。。谢谢。。

2025-02-27 09:15:37
推荐回答(2个)
回答1:

var
n,i:integer;
ha:array[0..10] of boolean;
l:array[0..10] of integer;
procedure print;
var
i:integer;
begin
write(l[1]);
for i:=2 to n do write(' ',l[i]);
writeln;
end;

procedure create(x:integer);
var
i:integer;
begin
if x>n then print
else begin
for i:=1 to n do
if not ha[i] then
begin
ha[i]:=true;
l[x]:=i;
create(x+1);
ha[i]:=false;
end;
end;
end;

begin
assign(input,'Form.in');reset(input);
assign(output,'Form.out');rewrite(output);
read(n);
for i:=1 to n do ha[i]:=false;
create(1);
close(input);close(output);
end.

回答2:

perm(list,k+1,m);//这里原来list后面的逗号是中文的,需要改为西文字符