Friday 8 August 2014

Problem 2

Problem 2

Second problem from project Euler.
Feedback on better ways to do these are most welcome!

Question:

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, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.


Answer:

public class problem2 {


 public static void main(String[] args) {
  problem2 p = new problem2();
  int val = 0;
  int sum = 0;
  for (int i = 2; i < 102; i++) {
   val = p.fibonacci(i);
   if (val % 2 == 0) {
    if (val <= 4000000) {
     sum = sum + val;
    } else {
     break;
    }
   }
  }
  System.out.println(sum);
 }


 public int fibonacci(int n) {
  if (n == 0)
   return 0;
  else if (n == 1)
   return 1;
  else
   return fibonacci(n - 1) + fibonacci(n - 2);
 }
}
}


The good thing about project Euler is that each question relys on something learned in the previous. Also I would just like to point out that this is the first time in a long time that I have used recursion...dosn't seem to be used that much in the feild..

No comments:

Post a Comment