Open In App

Print first n Fibonacci Numbers using direct formula

Last Updated : 23 Aug, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given a number n, the task is to print first n Fibonacci numbers.

Prerequisite: Program to print first n Fibonacci Numbers | Set 1

Examples: 

Input : 7
Output :0 1 1 2 3 5 8

Input : 5
Output :0 1 1 2 3

N-th Fibonacci Number = [(1 + ?5)n – (1 – ?5)n)] / [2n * ?5]

Below is the implementation.  

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>


Output: 

0 1 1 2 3 5 8 13

 

Time Complexity: O(n)
Auxiliary Space: O(1)

Note: The above program is costly compared to method 1 as it causes power computations in floating point. Also, it may not work perfectly due to floating point precision errors.
 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads