Problem solving is, however, more than a vehicle for teaching and reinforcing mathematical knowledge and helping to meet everyday challenges. It is also a skill which can enhance logical reasoning. Individuals can no longer function optimally in society by just knowing the rules to follow to obtain a correct answer. They also need to be able to decide through a process of logical deduction what algorithm, if any, a situation requires, and sometimes need to be able to develop their own rules in a situation where an algorithm cannot be directly applied. For these reasons problem solving can be developed as a valuable skill in itself, a way of thinking (NCTM, 1989), rather than just as the means to an end of finding the correct answer.