Is any solution the correct solution?

Posted by Eli on Stack Overflow See other posts from Stack Overflow or by Eli
Published on 2010-03-02T17:52:45Z Indexed on 2010/03/14 14:05 UTC
Read the original article Hit count: 453

Filed under:
|

I always think to myself after solving a programming challenge that I have been tied up with for some time, "It works, thats good enough".

I don't think this is really the correct mindset, in my opinion and I think I should always be trying to code with the greatest performance.

Anyway, with this said, I just tried a ProjectEuler question. Specifically question #2.

How could I have improved this solution. I feel like its really verbose. Like I'm passing the previous number in recursion.

<?php
  /* Each new term in the Fibonacci sequence is generated by adding the previous two
     terms. By starting with 1 and 2, the first 10 terms will be:

     1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

     Find the sum of all the even-valued terms in the sequence which do not exceed
     four million.
   */
   function fibonacci ( $number, $previous = 1 ) {
     global $answer;
     $fibonacci = $number + $previous;
     if($fibonacci > 4000000) return;
     if($fibonacci % 2 == 0) {
       $answer = is_numeric($answer) ? $answer + $fibonacci : $fibonacci;
     }
     return fibonacci($fibonacci, $number);
   }
   fibonacci(1);
   echo $answer;
?>

Note this isn't homework. I left school hundreds of years ago. I am just feeling bored and going through the Project Euler questions

© Stack Overflow or respective owner

Related posts about project-euler

Related posts about php