求一简单算法~ int max=10,count=6;for ( int i=max ; i > max-count; i --){i = i * i -1 ;} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改正:int max=10,count=6;for ( int i=max ; i > max-count; i --){i = i * (i -1) ;} System.Random Rnd = new Random();for ( int i = 0 ; i < dtSmallPapers.Rows.Count - 5; i++ ){ int j = Rnd.Next( 0, dtSmallPapers.Rows.Count ); dtSmallPapers.Rows.RemoveAt( j );}上面是在一个DataTable中有若干条数据,只取其中的随机5条。 class demo1{ public static void Main() { int maxvalue = 10; for(int i=1;i<=maxvalue/2;i++) for(int j=i+1; j<= maxvalue ;j++) for(int k=j+1; k<= maxvalue;k++) for(int m=k+1; m<=maxvalue;m++) for(int n=m+1; n<=maxvalue;n++) for(int l=n+1; l<=maxvalue;l++) System.Console.WriteLine("{0}-{1}-{2}-{3}-{4}-{5}",i,j,k,m,n,l); } smartcreater()这样做可以~但给出的数字是连续的才行~比如1,2,3,4,5,6,7我要是给出1,4,5,6,7,9,10就不行了~ 不是楼上说的n次方,应该是C6/n的排列组合! 方法:把数字存放进一个数组int[] a = new int[10]; //存放数字int[] b = new int[10]; //存放每一组临时的数字组合//赋值private void all(int start){ for (int i=start; i<10; i++){ b[start] = a[i]; all(start+1); } if (i==10){ printb(); }} public class CodeForComb { static int [] CombData=new int[10]; static void Main() { a[0]=6;//打印6个数 comb(7,6); //按7中取6个不同的组合数 } static void comb(int m,int k) { int i,j; for( i=m;i>=k;i--) { CombData[k]=i; if(k>1) comb(i-1,k-1);//还有其他组合数 递归 else //有一组组合数了 { for(j=a[0];j>0;j--) { Console.Write(CombData[j]); } Console.WriteLine(); } } } } 把数字存放进一个数组呀,如:void FindAll(ref int [] a,int maxvalue){ for(int i=1;i<= maxvalue/2;i++) for(int j=i+1; j <= maxvalue ;j++) for(int k=j+1; k<= maxvalue;k++) for(int m=k+1; m<=maxvalue;m++) for(int n=m+1; n<=maxvalue;n++) for(int l=n+1; l<=maxvalue;l++) System.Console.WriteLine("{0}-{1}-{2}-{3}-{4}-{5}",a[i],a[j],a[k],a[m],a[n],a[l]); return;}void main(){ int maxvalue = 10; int Array [] = new a[maxvalue];//记得给他赋值 FindAll(ref a,maxvalue);} 这个验证过了:class Class1 { static int num = 4; static int[] a = new int[num]; //存放数字 static int[] b = new int[num]; //存放每一组临时的数字组合 /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { for (int i=0;i<num;i++) { a[i] = i; } all(0); Console.ReadLine(); } //赋值 static private void all(int start) { if (start==num) { bool same = false; for (int j=0;j<start;j++) { for (int i=0;i<start;i++) { if ((i != j) && (b[i] == b[j])) { same = true; break; } } } if (!same) printb(); return; } for (int i=0; i<num; i++) { b[start] = i; all(start+1); } } static private void printb() { for (int i=0;i<num;i++) { Console.Write(a[b[i]] + " "); } Console.WriteLine(); } } c#新手请教 关于winForm窗体设置位置时的问题 Console.In.ReadLine()等待问题 使用enum时候碰到的问题 网站访问量突然从二千多变到四百多,不知啥原因,请大家帮忙看看程序~~~ 卡住了,请指教 我们团队中有一个技术争论:关于企业逻辑组件布署问题。-----------看你怎么想? C# 调用C++ 回调函数成功后 卡死 求助:ADOX创建access数据库的问题,急! 请教---思归---大侠 请教如何将水晶报表两个查询结果的记录先后显示,而不是间隔显示? 关于字符串的问题!比较急 谢谢
int max=10,count=6;
for ( int i=max ; i > max-count; i --)
{
i = i * (i -1) ;
}
for ( int i = 0 ; i < dtSmallPapers.Rows.Count - 5; i++ )
{
int j = Rnd.Next( 0, dtSmallPapers.Rows.Count );
dtSmallPapers.Rows.RemoveAt( j );
}上面是在一个DataTable中有若干条数据,只取其中的随机5条。
{
public static void Main()
{ int maxvalue = 10;
for(int i=1;i<=maxvalue/2;i++)
for(int j=i+1; j<= maxvalue ;j++)
for(int k=j+1; k<= maxvalue;k++)
for(int m=k+1; m<=maxvalue;m++)
for(int n=m+1; n<=maxvalue;n++)
for(int l=n+1; l<=maxvalue;l++) System.Console.WriteLine("{0}-{1}-{2}-{3}-{4}-{5}",i,j,k,m,n,l);
}
我要是给出1,4,5,6,7,9,10就不行了~
把数字存放进一个数组int[] a = new int[10]; //存放数字
int[] b = new int[10]; //存放每一组临时的数字组合
//赋值private void all(int start){
for (int i=start; i<10; i++){
b[start] = a[i];
all(start+1);
}
if (i==10){
printb();
}
}
static int [] CombData=new int[10]; static void Main()
{
a[0]=6;//打印6个数
comb(7,6); //按7中取6个不同的组合数 }
static void comb(int m,int k)
{
int i,j;
for( i=m;i>=k;i--)
{
CombData[k]=i;
if(k>1)
comb(i-1,k-1);//还有其他组合数 递归 else //有一组组合数了
{
for(j=a[0];j>0;j--)
{
Console.Write(CombData[j]);
}
Console.WriteLine();
}
}
}
}
{
for(int i=1;i<= maxvalue/2;i++)
for(int j=i+1; j <= maxvalue ;j++)
for(int k=j+1; k<= maxvalue;k++)
for(int m=k+1; m<=maxvalue;m++)
for(int n=m+1; n<=maxvalue;n++)
for(int l=n+1; l<=maxvalue;l++)
System.Console.WriteLine("{0}-{1}-{2}-{3}-{4}-{5}",a[i],a[j],a[k],a[m],a[n],a[l]); return;
}void main()
{
int maxvalue = 10;
int Array [] = new a[maxvalue];//记得给他赋值 FindAll(ref a,maxvalue);
}
{
static int num = 4;
static int[] a = new int[num]; //存放数字
static int[] b = new int[num]; //存放每一组临时的数字组合
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
for (int i=0;i<num;i++)
{
a[i] = i;
} all(0); Console.ReadLine();
} //赋值 static private void all(int start)
{
if (start==num)
{
bool same = false;
for (int j=0;j<start;j++)
{
for (int i=0;i<start;i++)
{
if ((i != j) && (b[i] == b[j]))
{
same = true;
break;
}
}
} if (!same) printb();
return;
} for (int i=0; i<num; i++)
{
b[start] = i;
all(start+1);
}
} static private void printb()
{
for (int i=0;i<num;i++)
{
Console.Write(a[b[i]] + " ");
}
Console.WriteLine();
} }