题目描述 输入1-9的n个数 求这n个数的全排列
代码:namespace 全排列问题
{
class Program{
static int[] a;//存放产生的排列数
static int[] book;//表示当前这个数的状态 0表示未被用 1表示已经用过
static int[] number;//输入的原始数据
static int n;//输入的数据个数
static void Main(string[] args)
{
n = int.Parse(Console.ReadLine());
a = new int[n];
book = new int[n];
number = new int[n];
for (int j = 0; j < n; j++)
{
number[j] = int.Parse(Console.ReadLine());
}
Dfs(0);//从0号元素开始
Console.ReadKey();
}
static void Dfs(int step)
{
int i;
if (step == n)
{
for (i = 0; i < n; i++)
{
Console.Write(a[i]);
}
Console.WriteLine();
return;
}
for (i = 0; i <n; i++)
{
if (book[i] == 0)
{
a[step] = number[i];
book[i] = 1;
Dfs(step + 1);
book[i] = 0;
}
}
return;
}
}
}