有8个变量a1=50,a2=40,a3=30,a4=50,a5=50,a6=50,a7=50,a8=50,让每个变量从0到它的最大值开始循环,求a1+a2+a3+a4+a5+a6+a7+a8=116,所有这些组合的列表,怎样做啊,效率要高
解决方案 »
- C# 双击DataGridView选中行,弹出窗体form,并将该行的数据绑定到了form的TextBox等上面,form中有前一记录,后一记录按钮,如何改变值
- S-57电子海图的一些问题
- C#问题
- 求SQLserver中操作视图,对其涉及的基表进行增加、删除、修改的语句!谢谢大家!
- 怎样在数据绑定到Datalist之前 加一个 “序号”列
- 如何在asp.net中调用mfc动态库,高手来解答~~~~~
- 怎样判断剪贴板是否为空啊?不考虑格式
- 打印问题,对我来说极难,解决后500分相送!!盼高手出手!!
- 刚学C#。如何引用程序集,求助!求助!
- 关于设置参数查找数据库中多行数据的问题
- C#窗口
- 我做的winform软件无故刷屏很厉害,是因为控件用得太多?
foreach(var item in iis){
for(int i=0; i<item;i++)
{}
}
}
{
for (int a2 = 0; a2 <= 40; ++a2)
{
for (int a3 = 0; a3 <= Math.Min(30, 116 - a1 - a2); ++a3)
{
for (int a4 = 0; a4 <= Math.Min(50, 116 - a1 - a2 - a3); ++a4)
{
for (int a5 = 0; a5 <= Math.Min(50, 116 - a1 - a2 - a3 - a4); ++a5)
{
int b5 = 116 - a1 - a2 - a3 - a4 - a5;
for (int a6 = Math.Max(0, b5 - 50 - 50); a6 <= Math.Min(50, b5); ++a6)
{
int b6 = 116 - a1 - a2 - a3 - a4 - a5 - a6;
for (int a7 = Math.Max(0, b6 - 50); a7 <= Math.Min(50, b6); ++a7)
{
int a8 = 116 - a1 - a2 - a3 - a4 - a5 - a6 - a7;
Console.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}", a1, a2, a3, a4, a5, a6, a7, a8);
}
}
}
}
}
}
}
int a1 = 50, a2 = 40, a3 = 30, a4 = 50, a5 = 50, a6 = 50, a7 = 50, a8 = 50; //for (int i = ; i++)
//{
// for()
//}
for (int i = 0; i <= 116; i++)
{
if (i <= 50)
a1 = i;
else
a1 = 50;
for (int j = 0; j <= 116 - i; j++)
{
if (j <= 40)
a2 = j;
else
a2 = 40;
for (int k = 0; k <= 116 - i - j; k++)
{
if (k <= 30)
a3 = k;
else
a3 = 30;
for (int l = 0; l <= 116 - i - j - k; l++)
{
if (l <= 50)
a4 = l;
else
a4 = 50;
for (int m = 0; m <= 116 - i - j - k -l; m++)
{
if (m <= 50)
a5 = m;
else
a5 = 50; for (int n = 0; n <= 116 - i - j - k - l - m; n++)
{
if (n <= 50)
a6 = n;
else
a6 = 50;
for (int o = 0; o <= 116 - i - j - k - l - m - n;o++ )
{
if (o <= 50)
a7 = o;
else
a7 = 50;
for (int p= 0;p<116 - i - j - k - l - m - n-o ;p++ )
{
if (p <= 50)
a8 = p;
else
a8 = 50;
}
Console.WriteLine("{0} {1} {2} {3} {4} {5} {6} {7}", a1, a2, a3, a4, a5, a6, a7, a8);
}
}
} }
} }
}Console.ReadKey();
int ms2 = 30 + 50 + 50 + 50 + 50 + 50;
int ms3 = 50 + 50 + 50 + 50 + 50;
int ms4 = 50 + 50 + 50 + 50;
int ms5 = 50 + 50 + 50;
int ms6 = 50 + 50;
int ms7 = 50;
long n = 0;
for (int a1 = Math.Max(0, 116 - 0 - ms1), s1 = 0 + a1; a1 <= 50 && s1 <= 116; a1++, s1++)
for (int a2 = Math.Max(0, 116 - s1 - ms2), s2 = s1 + a2; a2 <= 40 && s2 <= 116; a2++, s2++)
for (int a3 = Math.Max(0, 116 - s2 - ms3), s3 = s2 + a3; a3 <= 30 && s3 <= 116; a3++, s3++)
for (int a4 = Math.Max(0, 116 - s3 - ms4), s4 = s3 + a4; a4 <= 50 && s4 <= 116; a4++, s4++)
for (int a5 = Math.Max(0, 116 - s4 - ms5), s5 = s4 + a5; a5 <= 50 && s5 <= 116; a5++, s5++)
for (int a6 = Math.Max(0, 116 - s5 - ms6), s6 = s5 + a6; a6 <= 50 && s6 <= 116; a6++, s6++)
for (int a7 = Math.Max(0, 116 - s6 - ms7), s7 = s6 + a7; a7 <= 50 && s7 <= 116; a7++, s7++)
Console.WriteLine("{0}: {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}", ++n, a1, a2, a3, a4, a5, a6, a7, 116 - s7);