110,531
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
var ar = new List<List<int>>()
{
new List<int>() {10, 0, 100, 0},
new List<int>() {20, 0, 110, 0},
new List<int>() {30, 0, 140, 0},
new List<int>() {40, 0, 160, 0},
};
var mb = 500;
var md = 90;
var num = 0;
foreach (var a in p(ar[0], mb, md))
{
foreach(var b in p(ar[1], mb, md))
{
foreach (var c in p(ar[2], mb, md))
{
foreach (var d in p(ar[3], mb, md))
{
if((a[1]+b[1]+c[1]+d[1]==mb) && (a[3]+b[3]+c[3]+d[3]==md))
{
Console.WriteLine("=== {0} ===", ++num);
Console.WriteLine(string.Join(", ", a));
Console.WriteLine(string.Join(", ", b));
Console.WriteLine(string.Join(", ", c));
Console.WriteLine(string.Join(", ", d));
if(num > 10) goto Exit;
}
}
}
}
}
Exit:
Console.Write("ok");
Console.ReadKey();
}
static Random rand = new Random(); //可以利用随机数,是结果好看点(虽然我没用)
static IEnumerable<List<int>> p(List<int> a, int mb, int md)
{
for (var b = 10; b < mb; b++)
{
for (var d = 10; d < md; d++)
{
if (a[0] + b == a[2] + d)
{
a[1] = b;
a[3] = d;
yield return a;
}
}
}
yield break;
}