码迷,mamicode.com
首页 > 其他好文 > 详细

全排列

时间:2015-08-06 23:54:13      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

题目描述 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[1..100]of longint;
    p:array[1..100] of boolean;
procedure print;
var i:longint;
begin
  for i:=1 to n do write(a[i],  );
  writeln;
end;
procedure try(k:longint);
var  i:longint;
begin
  if k=n+1 then print
  else
   for i:=1 to n do
    if p[i] then
     begin
      a[k]:=i;
      p[i]:=false;
      try(k+1);
      p[i]:=true;
     end;
end;
begin
  read(n);
  fillchar(p,sizeof(p),true);
  fillchar(a,sizeof(a),0);
  try(1);
end.

 

全排列

标签:

原文地址:http://www.cnblogs.com/yangqingli/p/4709289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!