要求类实现如下功能:输入两个参数a和b,a是两位数,b<a,要求从1到a中选出b个数字的组合,如果是选的数字是一位数就在前面补0补齐两位,比如1就用01,1-a中的数字每个只能出现一次。最后把选出来的数字写的文件中。
解决方案 »
- Javascript 哪个事件可以在checkbox状态改变时触发事件,非OnClick 事件。
- 请问 vs2010中 错误日记应该如何查看。
- 请好心人提供一个调用储存过程的方法
- GridView中如何把数据库中两个字段,现在是一个GridView的列中!
- 这个错误是怎么回事?
- 新手问题!!急急急急急急急!!
- DataGrid的分页问题
- 网址传参给搜索页面,如何防注入
- 关于MS的PetShop示例的疑问,高手请进
- 如何批量替换dataset里面某表里的数据 比如把表里的 所有 “电脑” 全部替换成“微机”
- 高分求将当前应用程序的目录装入到treeview中!
- 关于在FormView中的edit模式下查找SqlDataSource的问题?
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();
}
}
{
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);
}
}
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