我有使用组合方法的编码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
string input;
int NoDisplay;
decimal goal;
decimal element;
do
{
Console.WriteLine("Please enter the target:");
input = Console.ReadLine();
}
while (!decimal.TryParse(input, out goal));
Console.WriteLine("Please enter the numbers (separated 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);
}
}
int i;
int j;
decimal tmp;
int[] arr1 = new int[10];
for (i = 0; i < elementsList.Count; i++)
{
for (j = i + 1; j < elementsList.Count; j++)
{
if (elementsList[i] < elementsList[j])
{
tmp = elementsList[i];
elementsList[i] = elementsList[j];
elementsList[j] = tmp;
}
}
}
Console.WriteLine("Please enter the maximum combination :");
NoDisplay = Convert.ToInt32(Console.ReadLine());
Solver solver = new Solver();
List<List<decimal>> results = solver.Solve(goal, elementsList.ToArray());
//results.Reverse();
Boolean recordexist = false;
foreach (List<decimal> result in results)
{
if (result.Count == NoDisplay)
{
recordexist = true;
foreach (decimal value in result)
{
Console.Write("{0}\t", value);
}
if (recordexist == true)
{
Console.WriteLine();
}
}
}
if (recordexist == false)
{
Console.WriteLine("No record exist");
}
Console.ReadLine();
}
}
我的问题是如何才能显示第一,第二和第三个答案 Like this
抱歉我的英语不好,我希望有人能帮助我。我还是c#btw的新手。谢谢
答案 0 :(得分:0)
我的问题是如何显示第一,第二和第三个答案 仅?
只需创建一个1
变量,每次显示results
列表的子列表时增加3
,当它到达break
时我们可以{ {1}}循环。
int counter = 0;
foreach (List<decimal> result in results)
{
if(counter == 3) break;
if (result.Count == NoDisplay)
{
recordexist = true;
foreach (decimal value in result)
{
Console.Write("{0}\t", value);
}
if (recordexist == true)
{
Console.WriteLine();
}
counter++;
}
}
答案 1 :(得分:0)