21xrx.com
2024-09-20 05:32:32 Friday
登录
文章检索 我的文章 写文章
C++实现斐波那契数列前20个数
2023-07-10 10:04:21 深夜i     --     --
C++ 斐波那契数列 前20个数 实现

斐波那契数列,又称黄金分割数列,是指从第三个数开始,每个数都是前两个数之和。其数列形式如下:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765,其中第一个数和第二个数都是1,从第三个数开始才开始计算。

在C++中,可以使用循环或递归的方式来实现斐波那契数列的生成。以下是循环实现斐波那契数列前20个数的代码:


#include <iostream>

using namespace std;

int main()

{

  int a = 0, b = 1, c;

  for (int i = 0; i < 20; i++)

  {

    cout << b << " ";

    c = a + b;

    a = b;

    b = c;

  }

  return 0;

}

上面的代码将第一个数和第二个数分别赋值为0和1,使用for循环来生成20个数。在循环中,先输出当前数,然后将前两个数之和赋值给第三个数,再将第二个数的值赋给第一个数,将第三个数的值赋给第二个数。通过不断更新这三个数的值,就能够得到斐波那契数列的前20个数。

除了循环之外,递归也是实现斐波那契数列的常见方法。以下是使用递归实现斐波那契数列前20个数的代码:


#include <iostream>

using namespace std;

int fib(int n)

{

  if (n == 0 || n == 1)

    return 1;

  else

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

}

int main()

{

  for (int i = 0; i < 20; i++)

  {

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

  }

  return 0;

}

在这段代码中,我们定义了一个函数fib,输入一个整数n,输出斐波那契数列中第n个数的值。在fib函数内部,如果n等于0或者1,直接输出1,否则递归调用fib(n-1)和fib(n-2)的和。在主函数中,使用for循环来依次输出斐波那契数列前20个数的值,不需要对前两个数进行特殊处理。

以上是两种在C++中实现斐波那契数列的方法。无论使用循环还是递归,掌握好斐波那契数列的生成方式,有助于我们更好地理解和掌握常用的算法和编程语言。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复