using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication32
{
    class Program
    {
        
        static int s = 0;
        static void Main(string[] args)
        {
            string strs = "12345";
            List<string> list = new List<string>();
            Compute(strs, "",list);            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(list[i]);
            }
            Console.WriteLine(s);
            Console.Read();
        }        /// <summary>
        /// 数学排列
        /// </summary>
        /// <param name="num"></param>
        /// <param name="curnum"></param>
        public static void  Compute( string num,string curnum,List<string> list)
        {
            for (int i = 0; i < num.Length; i++)
            {
                curnum+= num[i].ToString();
                if (num.Length == 1)
                {
                    list.Add(curnum);
                    s++;
                }
                else
                {
                    string temp=num.Replace(num[i].ToString(),"");
                    Compute(temp,curnum,list);
                    curnum= curnum.Remove(curnum.Length - 1, 1);
                }
            }
        }        
    }
}

解决方案 »

  1.   

    。。没,看网上都大多是用回溯法写的,自己刚写了一个
      

  2.   


    /*
    12345
    12354
    12435
    12453
    12534
    12543
    13245
    13254
    13425
    13452
    13524
    13542
    14235
    14253
    14325
    14352
    14523
    14532
    15234
    15243
    15324
    15342
    15423
    15432
    21345
    21354
    21435
    21453
    21534
    21543
    23145
    23154
    23415
    23451
    23514
    23541
    24135
    24153
    24315
    24351
    24513
    24531
    25134
    25143
    25314
    25341
    25413
    25431
    31245
    31254
    31425
    31452
    31524
    31542
    32145
    32154
    32415
    32451
    32514
    32541
    34125
    34152
    34215
    34251
    34512
    34521
    35124
    35142
    35214
    35241
    35412
    35421
    41235
    41253
    41325
    41352
    41523
    41532
    42135
    42153
    42315
    42351
    42513
    42531
    43125
    43152
    43215
    43251
    43512
    43521
    45123
    45132
    45213
    45231
    45312
    45321
    51234
    51243
    51324
    51342
    51423
    51432
    52134
    52143
    52314
    52341
    52413
    52431
    53124
    53142
    53214
    53241
    53412
    53421
    54123
    54132
    54213
    54231
    54312
    54321
    120*/