C# 全排列問題
題目描述 輸入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;
}
}
}