using System.Collections.Generic;
private static bool IsFound = false;
private static List<string> resultsList = new List<string>();
public static void Main()
List<double> numbers = new List<double>() { 500.1, 1500.1, 1000, 200.1, 300 };
getSum_up(numbers, target);
Console.WriteLine("The target number is found as following:");
resultsList.ForEach(a=> Console.WriteLine(a));
else Console.WriteLine("The target number isn't found!");
private static void getSum_up(List<double> numbers, double target)
do_Sum_recursive(numbers, target, new List<double>());
private static void do_Sum_recursive(List<double> numbers, double target, List<double> partial)
partial.ForEach(a=> s+=a);
resultsList.Add(string.Join(", ", partial.ToArray()) );
for (int i = 0; i < numbers.Count; i++)
List<double> remaining = new List<double>();
for (int j = i + 1; j < numbers.Count; j++) remaining.Add(numbers[j]);
List<double> partial_rec = new List<double>(partial);
do_Sum_recursive(remaining, target, partial_rec);