title: Theory behind Implementation of a Challenge 24 Solver
body: <p>As an introduction to Java and android development I decided to write a Challenge 24 (given 4 numbers, must add, multiply, divide or subtract in order to create the product 24) solving application that implements an exhaustive technique to solve for any and all possible solutions.  currently it works like so (a,b,c,d being the 4 input numbers) </p>
  
  <pre><code>((a+b)+c)+d
  ((a+b)+c)-d
  ((a+b)+c)*d
  ((a+b)+c)/d
  ((a+b)-c)+d
  ...
  ...
  ((a/b)/c)/d
  ((a+b)+d)+c
  ((a+b)+d)-c
  </code></pre>
  
  <p>and so on...</p>
  
  <p>I have found this works on a vast majority of cases, however cases such as 8,3,8,3 came up in testing where no solutions were found, however the solution 8/(3-8/3)=24 is correct.  So I guess the end question is fairly vague, but how could this be implemented to account for cases where parentheses are crucial to finding a solution?</p>