有10个字母,(a,b,c,d,e,f,g,h,i,j)
选择其中6个
要求出所有组合,
字母不重复,没有顺序要求

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/4976/4976478.xml?temp=.4058802
      

  2.   

    多谢copico(★★★★★David) 大大的关注但我这里是指定了字符,只能在其中选择几个,无顺序要求,就是说abc和cba是一样结果
    就是字符不能重复
      

  3.   

    ArrayList strArray=new ArrayList();
    for(char A='a';A<='j';A++)
    {
    for(char B='a';B<='j';B++)
    {
    if(B!=A)
    {
    for(char C='a';C<='j';C++)
    {
    if(A!=C && B!=C)
    {
    for(char D='a';D<='j';D++)
    {
    if(D!=A && D!=B &&D!=C)
    for(char E='a';E<='j';E++)
    {
    if(E!=A && E!=B && E!=C && E!=D)
    for(char F='a';F<='j';F++)
    {
    if(F!=A && F!=B && F!=C && F!=D && F!=E)
    {
    strArray.Add(A.ToString()+B.ToString()+C.ToString()+D.ToString()+E.ToString()+F.ToString());

    }
    }
    }
    }
    }
    }
    }
    }
    我以前学C用到的
      

  4.   

    写个循环类做就可以了。
    ArrayList al = new ArrayList();//用来存放所有组合
    char[] chr = new char(){'a','b','c','d','e','f','g','h','i','j'};
    string str1,str2,str3,str4,str5,str6;
    for(int i1 = 0;i1<chr.Length;i1++)
    {
    str1 = chr[i1].ToString();
    for(int i2 = 0;i2<chr.Length,i2!=i1;i2++)
    {
    str2 = chr[i2].ToString();
    for(int i3 = 0;i3<chr.Length,i3!=i1,i3!=i2;i3++)
    {
    str3 = chr[i3].ToString();
    for(int i4 = 0;i4<chr.Length,i4!=i1,i4!=i2,i4!=i3;i4++)
    {
    str4 = chr[i4].ToString();
    for(int i5 = 0;i5<chr.Length,i5!=i1,i5!=i2,i5!=i3,i5!=i4;i5++)
    {
    str5 = chr[i5].ToString();
    for(int i6 = 0;i6<chr.Length,i6!=i1,i6!=i2,i6!=i3,i6!=i4,i6!=i5;i6++)
    {
    str6 = chr[i6].ToString();
    al.Item.Add(str1+str2+str3+str4+str5+str6);
    }
    }
    }
    }
    }
    }
    string[] str = new string[al.Count];
    al.CopyTo(str);
    //str就是所有组合的数组
      

  5.   

    多谢xingyaohua(邢跃华) 大大如果我的字母不定个数应该怎么写,就是说6~10个,这个循环不固定了,头晕
      

  6.   

    to lovvver(www.notsoft.cn)大大一样,如果开始的字符不定长如何写,分你们都有份,:)
      

  7.   

    我的需要改一下:
    ArrayList al = new ArrayList();//用来存放所有组合
    char[] chr = new char[]{'a','b','c','d','e','f','g','h','i','j'};
    string str1,str2,str3,str4,str5,str6;
    int i1,i2,i3,i4,i5,i6;
    for(i1 = 0;i1<chr.Length;i1++)
    {
    str1 = chr[i1].ToString();
    for(i2 = 0;i2<chr.Length && i2!=i1;i2++)
    {
    str2 = chr[i2].ToString();
    for(i3 = 0;i3<chr.Length&&i3!=i1&&i3!=i2;i3++)
    {
    str3 = chr[i3].ToString();
    for(i4 = 0;i4<chr.Length&&i4!=i1&&i4!=i2&&i4!=i3;i4++)
    {
    str4 = chr[i4].ToString();
    for(i5 = 0;i5<chr.Length&&i5!=i1&&i5!=i2&&i5!=i3&&i5!=i4;i5++)
    {
    str5 = chr[i5].ToString();
    for(i6 = 0;i6<chr.Length&&i6!=i1&&i6!=i2&&i6!=i3&&i6!=i4&&i6!=i5;i6++)
    {
    str6 = chr[i6].ToString();
    al.Add(str1+str2+str3+str4+str5+str6);
    }
    }
    }
    }
    }
    }
    string[] str = new string[al.Count];
    al.CopyTo(str);
    //str就是所有组合的数组