using System; using System.Collections.Generic; using System.Linq; using System.Text; 示例图// // // ┏ ABCD // ┣ BCDA // ┏ ABC ━┫ // ┃ ┣ CDAB // ┏ AB ━╋ BCA ┗ DABC // ┃ ┃ . // ┃ ┗ CAB . //A ━┫ . // ┃ ┏ BAC . // ┃ ┃ . // ┗ BA ━╋ ACB ┏ CBAD // ┃ ┣ BADC // ┗ CBA ━┫ // ┣ ADCB // ┗ DCBA // // [2/25/2011 cheng] namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("请输入任意字符"); string temp = Console.ReadLine(); Console.WriteLine("/n"); char[] s = temp.ToCharArray(); permutation(s, 0, s.Length); Console.WriteLine("/n"); Console.WriteLine("共{0}个", count.ToString()); Console.ReadLine(); } private static int count = 0; /// <summary> /// 递归排列组合 /// </summary> /// <param name="a">字符组</param> /// <param name="m">开始位置</param> /// <param name="n">结束位置</param> private static void permutation(char[] a, int m, int n) { int i; char t; if (m < n - 1) { permutation(a, m + 1, n); for (i = m + 1; i < n; i++) { t = a[m]; a[m] = a[i]; a[i] = t; permutation(a, m + 1, n); t = a[m]; a[m] = a[i]; a[i] = t; } } else { string temp = string.Empty; foreach (char c in a) { temp += c.ToString(); } Console.WriteLine("{0}", temp); count++; } } } }