【发布时间】:2017-04-14 09:10:21
【问题描述】:
我是 c# 的新手,然后我的主管要求我找到给定数字集的所有可能组合,我必须设置组合的最大值。我已经得到的组合但无法设置最大数量。最大数量是组合的。从我的图像来看,它有 5,4 和 3 行,这是所有可能的组合。但我只想设置仅显示 3 行的输出。我尝试了很多方法,但仍然无法得到它。对不起我的英语不好。
这里是代码。
class Program
{
static void Main(string[] args)
{
string input;
decimal goal;
decimal element;
int max = 2;
do
{
Console.WriteLine("Please enter the target:");
input = Console.ReadLine();
}
while (!decimal.TryParse(input, out goal));
Console.WriteLine("Please enter the numbers (separat`enter code here`ed by spaces)");
input = Console.ReadLine();
string[] elementsText = input.Split(' ');
List<decimal> elementsList = new List<decimal>();
foreach (string elementText in elementsText)
{
if (decimal.TryParse(elementText, out element))
{
elementsList.Add(element);
}
}
Solver solver = new Solver();
List<List<decimal>> results = solver.Solve(goal, elementsList.ToArray());
//foreach (List<decimal> result in results)
//{
// foreach (decimal value in result)
// {
// Console.Write("{0}\t", value);
// }
// Console.WriteLine();
//}
for (int i = 0; i <= results.Count; i++)
{
int x = results.SelectMany(list => list).Distinct().Count();
if (x <= max)
{
for (int j = 0; j <= max; j++)
{
Console.Write("{0}\t", results[i][j]);
}
Console.WriteLine();
}
}
Console.ReadLine();
}
}
【问题讨论】:
-
我只想知道如何设置最大数量而已。谢谢
-
你应该做什么
input和output -
不清楚你在问什么。如果您不能用语言表达,您应该提供更多信息,至少给出示例输入和所需的输出
-
数字是单个数字,还是任何可能的数字?例如,输入为 [1, 2, 3],组合为 123, 231, ... 等。或者输入为 [12, 34, 1],组合为 [1, 34, 12], ... 等?
-
您可以输入的最大数量?这里要说清楚