Given a number n, find n-th Fibonacci Number. Note that F0 = 0, F1 = 1, F2 = 2, …..
Input : n = 5 Output : 5 Input : n = 10 Output : 89
We have discussed below recursive solution in method 4 of Program for Fibonacci numbers.
F = |1, 1| |1, 0| M = |1, 1| |1, 0| F[n][n] = fib(n) | fib(n-1) ------------------ fib(n-1)| fib(n-2)
In this post an iterative method is discussed that avoids extra recursion call stack space. We have also used bitwise operators to further optimize. In the previous method, we divide the number with 2 so that at the end we get 1 and then we start the multiplication process
In this method we get the second MSB then start to multiply with FxF matrix then if bit is set then multiply again FxM matrix and so on. then we get the final result.
Approach : 1. First get the MSB of a number. 2. while (MSB > 0) multiply(F, F); if (n & MSB) multiply(F, M); and then shift MSB till MSB != 0
Time Complexity :- O(logn) and space complexity :- O(1).
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.
- An efficient way to check whether n-th Fibonacci number is multiple of 10
- 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
- Count Fibonacci numbers in given range in O(Log n) time and O(1) space
- How to check if a given number is Fibonacci number?
- Finding number of digits in n'th Fibonacci number
- Number of ways to represent a number as sum of k fibonacci numbers
- Fast Doubling method to find the Nth Fibonacci number
- G-Fact 18 | Finding nth Fibonacci Number using Golden Ratio
- Nth Even Fibonacci Number
- n'th multiple of a number in Fibonacci Series
- Find Index of given fibonacci number in constant time
- Fibonacci number in an array
- Check if a number is Full Fibonacci or not
- Python Program for n-th Fibonacci number
- C/C++ Program for nth multiple of a number in Fibonacci Series
- Program to find last two digits of Nth Fibonacci number
- Find nth Fibonacci number using Golden ratio
- Minimum number of elements to be replaced to make the given array a Fibonacci Sequence
- Distinct pairs from given arrays (a[i], b[j]) such that (a[i] + b[j]) is a Fibonacci number
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 Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.