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