解决方案 »

  1.   


    Tim 没有看清要求,输入时3个字符,输出的组合也必须是3个字符的组合,不可以多或者不可以少;
      

  2.   

    你只需要修改一下上边的算法
     
     //在这句之前加一个if判断 字符长度  ==3时才ADD
     dic.Add(m_Data[i], i);
      

  3.   

    终于和同事搞定了,其实就是一个递归的调用;呵呵;欢迎大家给点意见;
    地址如下:
    http://blog.csdn.net/Tony_Z/archive/2010/09/21/5898705.aspx
      

  4.   


    static string[] m_Data = { "A", "B", "C", "D", "E" };         static void Main(string[] args)
            {
                Dictionary<string, int> dic = new Dictionary<string, int>();
                for (int i = 0; i < m_Data.Length; i++)
                {
                    Console.WriteLine(m_Data[i]);//如果不需要打印单元素的组合,将此句注释掉
                    dic.Add(m_Data[i], i);
                }
                GetString(dic);
                Console.ReadLine();
            }        static void GetString(Dictionary<string,int> dd)
            {
                Dictionary<string, int> dic = new Dictionary<string, int>();
                foreach (KeyValuePair<string, int> kv in dd)
                {
                    for (int i = kv.Value + 1; i < m_Data.Length; i++)
                    {
                        Console.WriteLine(kv.Key + m_Data[i]);
                        dic.Add(kv.Key + m_Data[i], i);
                    }
                }
                if(dic.Count>0) GetString(dic);
            }