Dado un número n, la tarea es imprimir primero n números de Fibonacci .
Prerrequisito: Programa para imprimir primero n Números de Fibonacci | Serie 1
Ejemplos:
Input : 7 Output :0 1 1 2 3 5 8 Input : 5 Output :0 1 1 2 3
N-ésimo Número de Fibonacci = [(1 + √5) n – (1 – √5) n )] / [2 n * √5]
A continuación se muestra la implementación.
C++
// C++ code to print fibonacci // numbers till n using direct formula. #include<bits/stdc++.h> using namespace std; // Function to calculate fibonacci // using recurrence relation formula void fibonacci(int n){ long long int fib; for ( long long int i = 0; i < n; i++) { // Using direct formula fib = (pow((1 + sqrt(5)), i) - pow((1 - sqrt(5)), i)) / (pow(2, i) * sqrt(5)); cout << fib << " "; } } // Driver code int main() { long long int n = 8; fibonacci(n); return 0; }
Java
// Java code to print fibonacci // numbers till n using direct formula. class GFG{ // Function to calculate fibonacci // using recurrence relation formula static void fibonacci(double n){ double fib; for (double i = 0; i < n; i++) { // Using direct formula fib = (Math.pow((1 + Math.sqrt(5)), i) - Math.pow((1 - Math.sqrt(5)), i)) / (Math.pow(2, i) * Math.sqrt(5)); System.out.print((int)fib+" "); } } // Driver code public static void main(String[] args) { double n = 8; fibonacci(n); } } // This code is contributed by mits
Python3
# Python3 code to print fibonacci # numbers till n using direct formula. import math # Function to calculate fibonacci # using recurrence relation formula def fibonacci(n): for i in range(n): # Using direct formula fib = ((pow((1 + math.sqrt(5)), i) - pow((1 - math.sqrt(5)), i)) / (pow(2, i) * math.sqrt(5))); print(int(fib), end = " "); # Driver code n = 8; fibonacci(n); # This code is contributed by mits
C#
// C# code to print fibonacci // numbers till n using direct formula.\ using System; public class GFG{ // Function to calculate fibonacci // using recurrence relation formula static void fibonacci(double n){ double fib; for (double i = 0; i < n; i++) { // Using direct formula fib = (Math.Pow((1 + Math.Sqrt(5)), i) - Math.Pow((1 - Math.Sqrt(5)), i)) / (Math.Pow(2, i) * Math.Sqrt(5)); Console.Write((int)fib+" "); } } // Driver code static public void Main (){ double n = 8; fibonacci(n); } } // This code is contributed by ajit.
PHP
<?php // PHP code to print fibonacci // numbers till n using direct formula. // Function to calculate fibonacci // using recurrence relation formula function fibonacci($n) { for ($i = 0; $i < $n; $i++) { // Using direct formula $fib = (pow((1 + sqrt(5)), $i) - pow((1 - sqrt(5)), $i)) / (pow(2, $i) * sqrt(5)); echo $fib , " "; } } // Driver code $n = 8; fibonacci($n); // This code is contributed by jit_t ?>
Javascript
<script> // Javascript code to print fibonacci // numbers till n using direct formula. // Function to calculate fibonacci // using recurrence relation formula function fibonacci(n) { var fib; for(i = 0; i < n; i++) { // Using direct formula fib = (Math.pow((1 + Math.sqrt(5)), i) - Math.pow((1 - Math.sqrt(5)), i)) / (Math.pow(2, i) * Math.sqrt(5)); document.write(parseInt(fib) + " "); } } // Driver code var n = 8; fibonacci(n); // This code is contributed by gauravrajput1 </script>
Producción:
0 1 1 2 3 5 8 13
Nota: el programa anterior es costoso en comparación con el método 1 , ya que genera cálculos de potencia en coma flotante. Además, es posible que no funcione perfectamente debido a errores de precisión de punto flotante.