[开始编辑]:
我看错了原始问题。我以为它说在200多个数字列表中有4个数字的组合,这些数字加起来就等于其他数字。那不是被要求的,所以我的回答并没有太大帮助。
[结束编辑]
这很笨拙,但是如果您需要找到的四个数字加起来等于某个值(它可以找到四个以上的元组),那么它应该可以工作:
只需将200个数字放入一个数组(或列表或某个IEnumerable结构)中,然后就可以使用我发布的代码了。如果您在纸上有数字,则必须手动将它们输入到数组中,如下所示。如果在软拷贝中包含它们,则可以剪切并粘贴它们,然后在它们周围添加数字[x]
= xxx代码。或者,您可以将它们剪切并粘贴到文件中,然后将其从磁盘读取到阵列中。
double [] numbers = new numbers[200]; numbers[0] = 123; numbers[1] = 456; // // and so on. // var n0 = numbers; var n1 = numbers.Skip(1); var n2 = numbers.Skip(2); var n3 = numbers.Skip(3); var x = from a in n0 from b in n1 from c in n2 from d in n3 where a + b + c + d == 2341.42 select new { a1 = a, b1 = b, c1 = c, d1 = d }; foreach (var aa in x) { Console.WriteLine("{0}, {1}, {2}, {3}", aa.a1, aa.b1, aa.c1, aa.d1 ); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)