Java Program to Find Sum of Fibonacci Series Numbers of First N Even Indexes

For a given positive integer N, the purpose is to find the value of F2 + F4 + F6 +â€¦â€¦â€¦+ F2n till N number. Where Fi indicates the i’th Fibonacci number.

The Fibonacci Series is the numbers in the below-given integer sequence.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, â€¦â€¦

Examples:

Input: n = 4
Output: 33
N = 4, So here the fibonacci series will be produced from 0th term till 8th term:
0, 1, 1, 2, 3, 5, 8, 13, 21
Sum of numbers at even indexes = 0 + 1 + 3 + 8 + 21 = 33.

Input: n = 7
Output: 609
0 + 1 + 3 + 8 + 21 + 55 + 144 + 377 = 609.

Approach 1:

Find all Fibonacci numbers till 2n and add up only the even indices.

Java

 // Java Program to find even sum of // fibonacci Series Till number N import java.io.*;   class geeksforgeeks {       // Computing the value of first fibonacci series     // and storing the sum of even indexed numbers     static int Fib_Even_Sum(int N)     {         if (N <= 0)             return 0;           int fib[] = new int[2 * N + 1];         fib[0] = 0;         fib[1] = 1;           // Initializing the sum         int s = 0;           // Adding remaining numbers         for (int j = 2; j <= 2 * N; j++) {             fib[j] = fib[j - 1] + fib[j - 2];               // Only considering even indexes             if (j % 2 == 0)                 s += fib[j];         }           return s;     }       // The Driver code     public static void main(String[] args)     {         int N = 11;           // Prints the sum of even-indexed numbers         System.out.println(             "Even sum of fibonacci series till number " + N             + " is: " + +Fib_Even_Sum(N));     } }

Output

Even sum of fibonacci series till number 11 is: 28656

Time Complexity: O(n)

Auxiliary Space: O(n) as it is using an auxiliary array fib

Approach 2:

It can be clearly seen that the required sum can be obtained thus:
2 ( F2 + F4 + F6 +â€¦â€¦â€¦+ F2n ) = (F1 + F2 + F3 + F4 +â€¦â€¦â€¦+ F2n) â€“ (F1 â€“ F2 + F3 â€“ F4 +â€¦â€¦â€¦+ F2n)

Now the first term can be obtained if we put 2n instead of n in the formula given here.

Thus F1 + F2 + F3 + F4 +â€¦â€¦â€¦+ F2n = F2n+2 â€“ 1.

The second term can also be found if we put 2n instead of n in the formula given here

Thus, F1 â€“ F2 + F3 â€“ F4 +â€¦â€¦â€¦- F2n = 1 + (-1)2n+1F2n-1 = 1 â€“ F2n-1.

So, 2 ( F2 + F4 + F6 +â€¦â€¦â€¦+ F2n)
= F2n+2 â€“ 1 â€“ 1 + F2n-1
= F2n+2 + F2n-1 â€“ 2
= F2n + F2n+1 + F2n+1 â€“ F2n â€“ 2
= 2 ( F2n+1 -1)
Hence, ( F2 + F4 + F6 +â€¦â€¦â€¦+ F2n) = F2n+1 -1 .

The task is to find only F2n+1 -1.

Below is the implementation of the above approach:

Java

 // Java Program to find even indexed // Fibonacci Sum in O(Log n) time.   class GFG {       static int MAX = 1000;       // Create an array for memoization     static int f[] = new int[MAX];       // Returns n'th Fibonacci number     // using table f[]     static int fib(int n)     {         // Base cases         if (n == 0) {             return 0;         }         if (n == 1 || n == 2) {             return (f[n] = 1);         }           // If fib(n) is already computed         if (f[n] == 1) {             return f[n];         }           int k = (n % 2 == 1) ? (n + 1) / 2 : n / 2;           // Applying above formula [Note value n&1 is 1         // if n is odd, else 0].         f[n] = (n % 2 == 1)                    ? (fib(k) * fib(k)                       + fib(k - 1) * fib(k - 1))                    : (2 * fib(k - 1) + fib(k)) * fib(k);           return f[n];     }       // Computes value of even-indexed Fibonacci Sum     static int calculateEvenSum(int n)     {         return (fib(2 * n + 1) - 1);     }       // Driver program to test above function     public static void main(String[] args)     {         // Get n         int n = 11;           // Find the alternating sum         System.out.println(             "Even indexed Fibonacci Sum upto " + n             + " terms: " + calculateEvenSum(n));     } }

Output

Even indexed Fibonacci Sum upto 8 terms: 1596

Time Complexity: O(log n)

Auxiliary Space: O(MAX) because using an auxiliary array

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next
Similar Reads
Complete Tutorials