# Find the previous fibonacci number

Last Updated : 10 Mar, 2022

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 number` `int` `previousFibonacci(``int` `n)` `{` `    ``double` `a = n / ((1 + ``sqrt``(5)) / 2.0);` `    ``return` `round(a);` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 8;` `    ``cout << (previousFibonacci(n));` `}`   `// This code is contributed by Mohit Kumar`

## Java

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

## Python3

 `# Python3 implementation of the approach ` `from` `math ``import` `*`   `# Function to return the previous ` `# fibonacci number ` `def` `previousFibonacci(n): ` `    ``a ``=` `n``/``((``1` `+` `sqrt(``5``))``/``2.0``)` `    ``return` `round``(a) `   `# Driver code ` `n ``=` `8` `print``(previousFibonacci(n)) `

## C#

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

## Javascript

 ``

Output:

`5`

Time Complexity: O(1)

Auxiliary Space: O(1)

Previous
Next