noip2006C_4_1(全排列)下面程序的功能是利用递归方法生成从1到n(n<10)的n个数的全部可能的排列(不一定按升序输出)
样例输入
3
样例输出(每行输出5个排列)
123 132 213 231 321
312
program noip2006C_4_1;
var
i,n:integer;
a:array[1..10] of integer;
count:longint;
procedure perm(k:integer);
var
j,p,t:integer;
begin
if k=n then
begin
inc(count);
for p:=1 to k do write(a[p]:1);
write(' ');
if count mod 5=0 then writeln;
exit;
end;
for j:=k to n do
begin
t:=a[k];
a[k]:=a[j];
a[j]:=t;
perm(k+1);
t:=a[k];
a[k]:=a[j];
a[j]:=t;
end;
end;
begin
writeln('Entry n:');
read(n);
count:=0;
for i:=1 to n do a[i]:=i;
perm(1);
end.