📌  相关文章
📜  使用直接公式打印前n个斐波那契数

📅  最后修改于: 2021-04-24 16:04:35             🧑  作者: Mango

给定数字n,任务是打印前n个斐波那契数字。

先决条件:首先打印n个斐波那契数字的程序|套装1

例子 :

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

Input : 5
Output :0 1 1 2 3


第N个斐波那契数= [(1 +√ 5) n –(1 –√ 5) n )] / [2 n *√ 5]

下面是实现。

C++
// C++ code to print fibonacci 
// numbers till n using direct formula.
#include
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


输出:
0 1 1 2 3 5 8 13

注意:上面的程序与方法1相比是昂贵的,因为它会在浮点中进行功率计算。另外,由于浮点精度误差,它可能无法完美工作。