给定数字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相比是昂贵的,因为它会在浮点中进行功率计算。另外,由于浮点精度误差,它可能无法完美工作。