Project Euler | Problem 2 | Even Fibonacci numbers
Problem Description :
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.
Concept :
In Fibonacci sequence, each Fibonacci term is a sum of previous two terms.
For example - F(N)=F(N-2)+F(N-1)
Java Program :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javamultiplex.projecteuler; | |
import java.util.ArrayList; | |
import java.util.List; | |
/** | |
* | |
* @author Rohit Agarwal | |
* @category Project Euler Problems | |
* @problem Sum of even valued fibonacci terms below four million. | |
* | |
*/ | |
public class Problem2 { | |
public static void main(String[] args) { | |
int limit = 4000000; // 4 million | |
long result = getSumOfEvenFibonacciSequence(limit); | |
System.out.println("The sum of even valued terms of fibonacci sequence whose values do not exceed four million is : " + result); | |
} | |
private static long getSumOfEvenFibonacciSequence(int limit) { | |
List<Integer> fib = new ArrayList<Integer>(); | |
// Default values of first two terms of fibonacci sequence is 1,1. | |
fib.add(0, 1); | |
fib.add(1, 1); | |
int i = 1, temp, evenSum = 0; | |
while (fib.get(i) <= limit) { | |
i++; | |
temp = getNextFibonacciTerm(fib, i); | |
fib.add(i, temp); | |
temp = fib.get(i); | |
if (temp <= limit) { | |
if (temp % 2 == 0) { | |
evenSum += temp; | |
} | |
} | |
} | |
return evenSum; | |
} | |
private static int getNextFibonacciTerm(List<Integer> fib, int i) { | |
// On adding previous 2 terms we can get next fibonacci term. | |
int result = fib.get(i - 1) + fib.get(i - 2); | |
return result; | |
} | |
} |
Output :
![]() |
Output - Project Euler Problem 2 |
References :
Thank you friends, I hope you have clearly understood the solution of this problem. If you have any doubt, suggestion or query please feel free to comment below. You can also discuss this solution in our forum.
Tags : Project Euler Problem 2 Solution, Mathematics problems, Fibonacci numbers, Solution in Java, List, ArrayList, if statement, Dynamic programming, While loop.
Project Euler | Problem 2 | Even Fibonacci numbers
Reviewed by Rohit Agarwal
on
10/24/2016
Rating:

No comments:
Please provide your valuable comments. If you have any suggestion please share with me I will work on it and if you have any question or doubt please ask, don't hesitate. I am your friend, i will clarify all your doubts.