Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Nth Even Fibonacci Number

  • Difficulty Level : Easy
  • Last Updated : 18 Nov, 2021

Given a value n, find the n’th even Fibonacci Number.
Examples : 
 

Input  : n  = 3
Output : 34

Input  : n  = 4
Output : 144

Input : n = 7
Output : 10946

The Fibonacci numbers are the numbers in the following integer sequence. 
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …. 
where any number in sequence is given by: 
 

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

 Fn = Fn-1 + Fn-2 
      with seed values
      F0 = 0 and F1 = 1.

 

The even number Fibonacci sequence is, 0, 2, 8, 34, 144, 610, 2584…. We need to find n’th number in this sequence.
If we take a closer look at Fibonacci sequence, we can notice that every third number in sequence is even and the sequence of even numbers follow following recursive formula. 
 



Recurrence for Even Fibonacci sequence is:
     EFn = 4EFn-1 + EFn-2
with seed values
     EF0 = 0 and EF1 = 2.

EFn represents n'th term in Even Fibonacci sequence.

How does above formula work? 
Let us take a look original Fibonacci Formula and write it in the form of Fn-3 and Fn-6 because of the fact that every third Fibinacci number is even. 

Fn = Fn-1 + Fn-2 [Expanding both terms]
   = Fn-2 + Fn-3 + Fn-3 + Fn-4 
   = Fn-2 + 2Fn-3 + Fn-4 [Expanding first term]
   = Fn-3 + Fn-4 + 2Fn-3 + Fn-4
   = 3Fn-3 + 2Fn-4  [Expanding one Fn-4]
   = 3Fn-3 + Fn-4 + Fn-5 + Fn-6 [Combing Fn-4 and Fn-5]
   = 4Fn-3 + Fn-6  

Since every third Fibonacci Number is even, So if Fn is 
even then Fn-3 is even and Fn-6 is also even. Let Fn be
xth even element and mark it as EFx.
If Fn is EFx, then Fn-3 is previous even number i.e. EFx-1
and Fn-6 is previous of EFx-1 i.e. EFx-2
So
Fn = 4Fn-3 + Fn-6
which means,
EFx = 4EFx-1 + EFx-2

 

C++




// C++ code to find Even Fibonacci
//Series using normal Recursion
#include<iostream>
using namespace std;
 
// Function which return
//nth even fibonnaci number
long int evenFib(int n)
{
    if (n < 1)
    return n;
    if (n == 1)
    return 2;
 
    // calculation of
    // Fn = 4*(Fn-1) + Fn-2
    return ((4 * evenFib(n-1)) +
             evenFib(n-2));
}
 
// Driver Code
int main ()
{
    int n = 7;
    cout << evenFib(n);
    return 0;
}

Java




// Java code to find Even Fibonacci
// Series using normal Recursion
 
class GFG{
  
// Function which return
// nth even fibonnaci number
static long evenFib(int n)
{
    if (n < 1)
    return n;
 
    if (n == 1)
    return 2;
 
    // calculation of
    // Fn = 4*(Fn-1) + Fn-2
    return ((4 * evenFib(n-1)) +
                 evenFib(n-2));
}
 
// Driver Code
public static void main (String[] args)
{
    int n = 7;
    System.out.println(evenFib(n));
}
}
 
// This code is contributed by
// Smitha Dinesh Semwal

Python3




# Python3 code to find Even  Fibonacci
# Series using normal Recursion
  
# Function which return
#nth even fibonnaci number
def evenFib(n) :
    if (n < 1) :
        return n
    if (n == 1)  :
        return 2
  
    # calculation of
    # Fn = 4*(Fn-1) + Fn-2
    return ((4 * evenFib(n-1)) + evenFib(n-2)) 
 
 
# Driver Code
n = 7
print(evenFib(n))
 
 
# This code is contributed by Nikita Tiwari.

C#




// C# code to find Even Fibonacci
// Series using normal Recursion
using System;
 
class GFG {
 
// Function which return
// nth even fibonnaci number
static long evenFib(int n)
{
    if (n < 1)
    return n;
 
    if (n == 1)
    return 2;
 
    // calculation of Fn = 4*(Fn-1) + Fn-2
    return ((4 * evenFib(n - 1)) +
                 evenFib(n - 2));
}
 
// Driver code
public static void Main ()
{
    int n = 7;
    Console.Write(evenFib(n));
}
}
 
// This code is contributed by Nitin Mittal.

PHP




<?php
// PHP code to find Even Fibonacci
// Series using normal Recursion
 
// Function which return
// nth even fibonnaci number
function evenFib($n)
{
    if ($n < 1)
        return $n;
    if ($n == 1)
        return 2;
 
    // calculation of
    // Fn = 4*(Fn-1) + Fn-2
    return ((4 * evenFib($n-1)) +
                 evenFib($n-2));
}
 
// Driver Code
$n = 7;
echo(evenFib($n));
 
// This code is contributed by Ajit.
?>

Javascript




<script>
// Javascript code to find Even Fibonacci
// Series using normal Recursion
 
// Function which return
// nth even fibonnaci number
function evenFib(n)
{
    if (n < 1)
        return n;
    if (n == 1)
        return 2;
 
    // calculation of
    // Fn = 4*(Fn-1) + Fn-2
    return ((4 * evenFib(n-1)) +
                 evenFib(n-2));
}
 
// Driver Code
let n = 7;
document.write(evenFib(n));
 
// This code is contributed by _saurabh_jaiswal.
</script>

Output : 

10946

Time complexity of above implementation is exponential. We can do it in linear time using Dynamic Programming. We can also do it in O(Log n) time using the fact EFn = F3n. Note that we can find n’th Fibonacci number in O(Log n) time (Please see Methods 5 and 6 here). 
This article is contributed by Shivam Pradhan(anuj_charm). If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!