要求类实现如下功能:输入两个参数a和b,a是两位数,b<a,要求从1到a中选出b个数字的组合,如果是选的数字是一位数就在前面补0补齐两位,比如1就用01,1-a中的数字每个只能出现一次。最后把选出来的数字写的文件中。

解决方案 »

  1.   

    就是抽奖的,比如说33(a参数)选7(b参数),从1-33选出7个数字组合,1-9用01-09代替,就是在前面加0变成2位,没有实际意义,我用01代替1是为了把你们给出的数字将来再拆成7个数字,如果不替换,就分不出来13是1、3或着是13,我朋友又很好的好的缩水方法,只是没有基础的组合,让我给写,我用vb的循环,一运行就死机,所以求大家帮忙,如果中奖就把缩水的方法告诉你们。多谢!
      

  2.   

    如果一组数字能都能用:1,2,3,4,5,6,70一行用,分开的格式写在tex文件里,哪就不用用01代替1了,高手朋友帮我写个类,最好是能带2个参数的,这样就可以生成其他条件的,比如10选5.
      

  3.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Xml.Linq;/// <summary>
    /// Summary description for GenerateNumbers
    /// </summary>
    public class GenerateNumbers
    {
        #region private 变量
            private int numA;
            private int numB;
        #endregion    #region
            public int NumA
            {
                get {return numA ;}
                set { numA=value;}
            }
            public int NumB
            {
                get {return numB ;}
                set { numB=value;}
            }
        
        #endregion    public GenerateNumbers()
    {
    //
    // TODO: Add constructor logic here
    //      
    }    public GenerateNumbers(int a,int b)
        {
            if (b < a && a.ToString().Length==2)
            {
                this.numA = a;
                this.numB = b;
            }
        }    public string Generator()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder(); //储存生成的数
            System.Collections.ArrayList alTemp = new System.Collections.ArrayList(); //储存随即生成的数字
            int flag = 0;//标志是否生成了B个数字
            int randomNum;
            while (flag < NumB)
            {
                Random random = new Random();
                randomNum = random.Next(1, NumA);
                if (!alTemp.Contains(randomNum))//不重复
                {
                    alTemp.Add(randomNum);
                    if (randomNum.ToString().Length < 2)
                    {
                        sb.Append("0"+randomNum.ToString()+" ");
                    }
                    else
                    {
                        sb.Append(randomNum.ToString() + " ");
                    }
                    flag = flag + 1;
                }
            }
            return sb.ToString();
        }
    }
      

  4.   

    using System;class Lottery
    {
      readonly int [] array;
      readonly int n, m;
      
      public Lottery(int a, int b)
      {
        n = a;
        m = b;
        array = new int [m];
        D(0, 0);
      }
      
      void D(int i, int start)
      {
        int end = n - m + i;
        for (int x = start; x <= end; x++)
        {
          array[i] = x;
          if (i < m-1) D(i+1, x+1);
          else Print();
        }
      }
      
      void Print()
      {
        for (int i = 0; i < m; i++)
        {
          Console.Write((array[i]+1).ToString("D2"));
        }
        Console.WriteLine();
      }
      
      static void Main()
      {
        new Lottery(7, 3);
      }
    }
      

  5.   

    Lottery.exe > Lottery.txt
      

  6.   


      static void Main(string [] args)
      {
        if (args.Length == 2) new Lottery(int.Parse(args[0]), int.Parse(args[1]));
      }这样就可以接受命令行:Lottery.exe 7 3 > Lottery.txt