C ++程序显示斐波那契数列

斐波那契数列包含数字,其中每个项是前两个项的总和。这将创建以下整数序列-

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377…….

定义斐波那契数的递归关系如下-

F(n) = F(n-1) + F(n-2) F(0)=0 F(1)=1

显示斐波那契数列的程序

有两种显示斐波那契数列的方法,即使用动态编程和递归编程。这些进一步解释如下-

动态编程

示例

#include<iostream>

using namespace std;

void fib(int n) {

   int f[n];

   int i;

   f[0] = 0;

   f[1] = 1;

   for (i = 2; i < n; i++) {

      f[i] = f[i-1] + f[i-2];

   }

   for (i = 0; i < n; i++) {

      cout<<f[i]<<" ";

   }

}

int main () {

   int n = 10;

   fib(n);

   getchar();

   return 0;

}

上面程序的输出如下。

输出结果

0 1 1 2 3 5 8 13 21 34

在程序中,main()是驱动程序功能。创建斐波那契数列的实际代码存储在fib()从main调用的函数中。

创建一个数组f [n],它将存储斐波那契数列的前n个项。此数组的第一个和第二个元素分别初始化为0和1。

f[0] = 0;

f[1] = 1;

然后使用for循环将数组中的每个元素存储为其前两个元素的和。

for (i = 2; i < n; i++) {

   f[i] = f[i-1] + f[i-2];

}

最后显示斐波那契数列。

for (i = 0; i < n; i++) {

   cout<<f[i]<<" ";

}

递归编程

让我们看看如何使用递归显示斐波那契数列。

示例

#include<iostream>

using namespace std;

int fib(int n) {

   if (n <= 1)

   return n;

   return fib(n-1) + fib(n-2);

}

int main () {

   int n = 10, i;

   for(i=0;i<n;i++)

   cout<<fib(i)<<" ";

   return 0;

}

输出结果

0 1 1 2 3 5 8 13 21 34

在上面的程序中,设置了一个for循环,该循环使用递归创建了斐波那契数列的每个项。这是通过fib()为系列中的每个术语调用函数来完成的。

for(i=0;i<n;i++)

cout<<fib(i)<<" ";

fib()如果n分别为0或1,则该函数返回0或1。如果不是,它将作为前两个项的和递归调用自身,直到返回正确的值。

if (n <= 1)

return n;

return fib(n-1) + fib(n-2);

以上是 C ++程序显示斐波那契数列 的全部内容, 来源链接: utcz.com/z/343421.html

回到顶部