【发布时间】:2015-12-10 13:13:17
【问题描述】:
我有一个数组{1,2,3,4,5,6,7,8,9,10},我必须从array 中找到k 个元素的所有组合,并且k 将是动态的。因此,对于下面的 4 个元素,代码就足够了,但我必须采用这种动态方式,不固定将使用多少个 for 循环,所以请为此提出一些解决方案。
for (i = 0; i < len - 3; i++)
{
for (j = i + 1; j < len - 2; j++)
{
for (y = j + 1; y < len - 1; y++)
{
for (k = y + 1; k < len; k++)
Console.WriteLine("{0},{1},{2},{3}", s[i], s[j],s[y], s[k]);
}
}
}
【问题讨论】:
-
我不知道您是否阅读了我上次发布此问题时提到的博客,但它确实包含可以为您执行此操作的代码。 ericlippert.com/2014/10/13/producing-combinations-part-one
-
我不想使用 linq。
-
那篇文章没有“使用 Linq”。它确实使用了扩展方法,但如果您不喜欢,您仍然可以从该代码中学习。
-
那么您需要准确定义“基本 c#”的含义。您是否仅限于 .net 2.0?除了最后的扩展方法,如果你愿意,它可以用作常规的静态方法,我很确定其他所有东西都可以在 2.0 中编译。
-
这似乎是一个关于递归的作业,很遗憾你不得不在这里要求解决你的硬件