[CODEVS1294]全排列

题目描述 Description

给出一个n, 请输出n的所有全排列

输入描述 Input Description

读入仅一个整数n   (1<=n<=10)

输出描述 Output Description

一共n!行,每行n个用空格隔开的数,表示n的一个全排列。并且按全排列的字典序输出。

样例输入 Sample Input

3

样例输出 Sample Output

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

var n:longint;
a:array[..]of longint;
p:array[..] of boolean;
procedure print;
var i:longint;
begin
for i:= to n do write(a[i],' ' );
writeln;
end;
procedure try(k:longint);
var i:longint;
begin
if k=n+ then print
else
for i:= to n do
if p[i] then
begin
a[k]:=i;
p[i]:=false;
try(k+);
p[i]:=true;
end;
end;
begin
read(n);
fillchar(p,sizeof(p),true);
fillchar(a,sizeof(a),);
try();
end.
上一篇:pascal矩阵


下一篇:.net程序员转行做手游开发经历(五)