Find the previous fibonacci number

• Last Updated : 01 Apr, 2021

Given a Fibonacci number N, the task is to find the previous Fibonacci number.
Examples:

Input: N = 8
Output:
5 is the previous fibonacci number before 8.
Input: N = 5
Output:

Approach: The ratio of two adjacent numbers in the Fibonacci series rapidly approaches ((1 + sqrt(5)) / 2). So if N is divided by ((1 + sqrt(5)) / 2) and then rounded, the resultant number will be the previous Fibonacci number.
Below is the implementation of the above approach:

C++

 // C++ implementation of the approach#include  using namespace std; // Function to return the previous// fibonacci numberint previousFibonacci(int n){    double a = n / ((1 + sqrt(5)) / 2.0);    return round(a);} // Driver codeint main(){    int n = 8;    cout << (previousFibonacci(n));} // This code is contributed by Mohit Kumar

Java

 // Java implementation of the approachimport java.io.*; class GFG{         // Function to return the previous// fibonacci numberstatic int previousFibonacci(int n){    double a = n / ((1 + Math.sqrt(5)) / 2.0);    return (int)Math.round(a);} // Driver codepublic static void main (String[] args){    int n = 8;    System.out.println(previousFibonacci(n));}} // This code is contributed by ajit.

Python3

 # Python3 implementation of the approachfrom math import * # Function to return the previous# fibonacci numberdef previousFibonacci(n):    a = n/((1 + sqrt(5))/2.0)    return round(a) # Driver coden = 8print(previousFibonacci(n))

C#

 // C# implementation of the approachusing System; class GFG{     // Function to return the previous// fibonacci numberstatic int previousFibonacci(int n){    double a = n / ((1 + Math.Sqrt(5)) / 2.0);    return (int)Math.Round(a);} // Driver codepublic static void Main(){    int n = 8;    Console.Write(previousFibonacci(n));}} // This code is contributed by Akanksha_Rai

Javascript


Output:
5

My Personal Notes arrow_drop_up