Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. package com.javamultiplex.projecteuler;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. /**
  7. *
  8. * @author Rohit Agarwal
  9. * @category Project Euler Problems
  10. * @problem Sum of even valued fibonacci terms below four million.
  11. *
  12. */
  13. public class Problem2 {
  14.  
  15. public static void main(String[] args) {
  16.  
  17. int limit = 4000000; // 4 million
  18. long result = getSumOfEvenFibonacciSequence(limit);
  19. System.out.println("The sum of even valued terms of fibonacci sequence whose values do not exceed four million is : " + result);
  20. }
  21.  
  22. private static long getSumOfEvenFibonacciSequence(int limit) {
  23.  
  24. List<Integer> fib = new ArrayList<Integer>();
  25. // Default values of first two terms of fibonacci sequence is 1,1.
  26. fib.add(0, 1);
  27. fib.add(1, 1);
  28. int i = 1, temp, evenSum = 0;
  29. while (fib.get(i) <= limit) {
  30. i++;
  31. temp = getNextFibonacciTerm(fib, i);
  32. fib.add(i, temp);
  33. temp = fib.get(i);
  34. if (temp <= limit) {
  35. if (temp % 2 == 0) {
  36. evenSum += temp;
  37. }
  38. }
  39. }
  40.  
  41. return evenSum;
  42. }
  43.  
  44. private static int getNextFibonacciTerm(List<Integer> fib, int i) {
  45.  
  46. // On adding previous 2 terms we can get next fibonacci term.
  47. int result = fib.get(i - 1) + fib.get(i - 2);
  48. return result;
  49.  
  50. }
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement