问题是这样的,用户随便输入0-9之间的数字,然后生成这其中的3个数字的所有组合!比如3,5,6则有356,365,536,563等.

解决方案 »

  1.   

    http://topic.csdn.net/t/20021129/16/1216842.html
      

  2.   

    1楼的,我想看看C#的,最好是不用常规的递归。cancerser(都是混饭吃,记得要结帖) ( ) 信誉
    呵呵,确实是3D这样的彩票。目前在做一个在线的彩票分析。前期的图形生成都完成了,现在是在为网友定制 。呵呵
      

  3.   

    private ArrayList ddd(string[] ss)
    {
    ArrayList al=new ArrayList();
    int c=ss.Length-3;
    for(int i=0;i<=c;i++)
    for(int j=1+i;j<=c+1;j++)
    for(int k=j+1;k<=c+2;k++)
    {
    al.Add(ss[i]+ss[j]+ss[k]);
    al.Add(ss[i]+ss[k]+ss[j]);
    al.Add(ss[j]+ss[i]+ss[k]);
    al.Add(ss[j]+ss[k]+ss[i]);
    al.Add(ss[k]+ss[i]+ss[j]);
    al.Add(ss[k]+ss[j]+ss[i]);
    }
    return al;
    }//写着玩的 不知道对不都 ,下班
      

  4.   

    唉,一颗红星竟然写出如此烂的算法,我是一名电工,软件只是我的爱好!可以用这样的算法!
    把值赋给三个变量 A,B,C 然后两两交换 交换方法如下,A B C -> B A C -> B C A ->C B A ->C A B -> A C B 什么,问我昨么写,我把方法跟你说了,你还问我昨么写!                               伟大的电工程序员
      

  5.   

    zhaoyixiao() 不要光说不练哦?
      

  6.   

    先组合,再排列..参与这两篇文章,或许对你有帮助..http://www.vckbase.com/document/viewdoc/?id=1207http://www.cnblogs.com/dah/archive/2006/11/25/572183.html
      

  7.   

    private void arraylist(int a,int b,int c)
    {
    typedef  struct array{
       int i,j,k,h;
       h=i*100+j*10+k;
      }a[8];
    for(int i=0;i<6;i++)
     {
     a[i].i=a;
     a[i].j=b;
     a[i].k=c;
     }
    }
    a,b,c为输入的其中三个数
      

  8.   

    //最平常的做法估计就是这个了。string str = this.textBox1.Text.Trim();string[] num = str.Split(',');if (num.Length!=3)
    {
    MessageBox.Show("输入有误");
    return ;
    }//最好在这里把num的内容排序,这样生成的数字也是排好序的
    for (int i=0;i<num.Length;i++)
    {
    for (int j=0;j<num.Length;j++)
    {
    if (i==j)
    {
    continue;
    }
    for (int z=0;z<num.Length;z++)
    {
    if (j==z || i==z)
    {
    continue;
    } Int32 res = 0;

    try
    {
    res = Convert.ToInt32(num[i].Substring(0,1));
    res = res*10 + Convert.ToInt32(num[j].Substring(0,1));
    res = res*10 + Convert.ToInt32(num[z].Substring(0,1));
    }
    catch 
    {
    MessageBox.Show("输入有误");
    return ;
    } Console.WriteLine("结果是:{0}",res);
    }
    }
    }
      

  9.   

    参见我的blog,已经做成类,直接调用!
      

  10.   

    参见:
    http://www.cnblogs.com/dah/archive/2006/11/25/572183.html这个也是做好的类(组合+排列),下载直接调用就行了..
      

  11.   

    "参见:
    http://www.cnblogs.com/dah/archive/2006/11/25/572183.html这个也是做好的类(组合+排列),下载直接调用就行了.."这个是不错!!其实要自己写也不一定很难(但一定是最好的).
      

  12.   


    namespace Testing
    {
    public class Combination
    {
    char[] ac;
    public Combination(char[] ac)
    {
    this.ac=ac;
    }

    public string[] GetAll()
    {
    ArrayList al=new ArrayList();
    for (int i=0;i<3;i++)
    for (int j=0;j<3;j++)
    for (int k=0;k<3;k++)
    if (i!=j && j!=k && i!=k && !al.Contains( ac[i].ToString()+ac[j].ToString()+ac[k].ToString() ))
    al.Add(ac[i].ToString()+ac[j].ToString()+ac[k].ToString());
    return (string[] )al.ToArray(typeof(string));
    }
    }
    class Test
    {
    public static void Main(string[] args)
    {
    char[] ac=new char[3];
    try
    {
    for (int i=0;i<3;i++)
    ac[i]=args[i][0];
    }
    catch
    {
    Console.WriteLine("please input 3 number between 1 and 9");
    return;
    }
    Combination com=new Combination(ac);Console.WriteLine("All the combination of ({0}, {1}, {2}) is: ", ac[0],ac[1],ac[2]);
    foreach (string str in com.GetAll())
    Console.WriteLine(str); }
    }}