const maxn=10;var j,k,i,n:longint;a:array[1..maxn]of longint;procedure print;var i:longint;beginfor i:=1 to n dowrite(a[i]);end;function place:boolean;var i,j,n:longint;beginif place:=true then for i:=2 to n dofor j:=1 to i-1 doif (a[i]=a[j])then begin place:=false;break;end;end;procedure try(dep:longint);var i,n:longint;beginif place:=true thenbeginif dep>n then printelsefor i:=1 to n dobegina[dep]:=i;try(dep+1);end;end;end;beginread(n);try(1);end.
參考答案:program aa; {add}
const maxn=10;
var j,k,i,n:integer;
a:array[1..maxn]of longint;
procedure print;
var i:integer;
begin
for i:=1 to n do
write(a[i],' ');
end;
function place( ):boolean; { add ()}
var i,j,n:longint;
p: boolean;
begin
for i:=2 to n do
for j:=1 to i-1 do
if (a[i]=a[j])then begin place:=false; exit; end;
place:=true;
end;
procedure try(dep:integer);
var i,n:integer;
begin
if place()=true then {rewrite}
begin
if dep>n then print
else
for i:=1 to n do
begin
a[dep]:=i;
try(dep+1);
end;
end;
end;
begin
read(n);
try(1);
end.
参考资料:你要告诉我你要做什么.程序还是写简单点的好。不要复杂化,这是你写的吗?按你的意思改这程序什么也不能做