Given a value n, find the n’th even Fibonacci Number.
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:
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 [Expending first term] = Fn-3 + Fn-4 + 2Fn-3 + Fn-4 = 3Fn-3 + 2Fn-4 [Expending 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
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 contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.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.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Check if a M-th fibonacci number divides N-th fibonacci number
- Check if sum of Fibonacci elements in an Array is a Fibonacci number or not
- G-Fact 18 | Finding nth Fibonacci Number using Golden Ratio
- Program to find last two digits of Nth Fibonacci number
- Find nth Fibonacci number using Golden ratio
- Nth XOR Fibonacci number
- Nth Fibonacci number using Pell's equation
- Program to find Nth odd Fibonacci Number
- Fast Doubling method to find the Nth Fibonacci number
- C/C++ Program for nth multiple of a number in Fibonacci Series
- Sum of nth terms of Modified Fibonacci series made by every pair of two arrays
- Find the Nth element of the modified Fibonacci series
- Nth term of a Custom Fibonacci series
- Nth Term of a Fibonacci Series of Primes formed by concatenating pairs of Primes in a given range
- Find Nth even length palindromic number formed using digits X and Y
- Count of integers in a range which have even number of odd digits and odd number of even digits
- Even Fibonacci Numbers Sum
- Check if the n-th term is odd or even in a Fibonacci like sequence
- Sum of Fibonacci numbers at even indexes upto N terms
- Numbers with a Fibonacci difference between Sum of digits at even and odd positions in a given range