title: Algorithm to find which numbers from a list of size n sum to another number
body: <p>I have a decimal number (let's call it <strong>goal</strong>) and an array of other decimal numbers (let's call the array <strong>elements</strong>) and I need to find all the combinations of numbers from <strong>elements</strong> which sum to goal.</p>
  
  <p>I have a preference for a solution in C# (.Net 2.0) but may the best algorithm win irrespective.</p>
  
  <p>Your method signature might look something like:</p>
  
  <pre><code>public decimal[][] Solve(decimal goal, decimal[] elements)
  </code></pre>