Find the previous fibonacci number

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

Input:N = 8Output:5

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

**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 <bits/stdc++.h>` `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

`<script>` `// Javascript implementation of the approach` `// Function to return the previous` `// fibonacci number` `function` `previousFibonacci(n)` `{` ` ` `var` `a = n / ((1 + Math.sqrt(5)) / 2);` ` ` `return` `Math.round(a);` `}` `// Driver code` `var` `n = 8;` `document.write(previousFibonacci(n));` `// This code is contributed by rutvik_56.` `</script>` |

**Output:**

5

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.