Dado un número de Fibonacci N , la tarea es encontrar el número de Fibonacci anterior.
Ejemplos:
Entrada: N = 8
Salida: 5
5 es el número de fibonacci anterior al 8.
Entrada: N = 5
Salida: 3
Aproximación: La razón de dos números adyacentes en la serie de Fibonacci se aproxima rápidamente ((1 + sqrt(5)) / 2) . Entonces, si N se divide por ((1 + sqrt(5)) / 2) y luego se redondea, el número resultante será el número de Fibonacci anterior.
A continuación se muestra la implementación del enfoque anterior:
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>
Producción:
5
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)