使用两个变量打印斐波那契数列


阅读标题时,你的脑海中会浮现什么?在这里,我们需要仅使用 2 个变量来计算斐波那契数列。

首先,什么是斐波那契数列?

斐波那契数列是一组数字,其中每个数字都是它前面两个数字的和。0 和 1 之后的任何数字都是它前面两个数字的和。

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, ...

斐波那契数列在许多领域都具有迷人的数学特性和应用,包括金融、生物学和计算机科学。

标题中的问题在问我们什么?

标题暗示的问题通常要求你创建一个程序或函数来生成该序列,而无需将所有中间值存储在数组或列表中。相反,该程序应仅使用两个变量来跟踪序列中最新的和上一个值。

这种方法通常用作编程和解决问题的练习,因为它需要仔细的变量管理和对序列中下一个值的迭代计算。

方法

以下是解决问题的分步方法

  • 首先初始化三个变量 n、t1 和 t2。

  • 获取用户输入,以确定斐波那契数列中存在的项数。

  • 最初,t1 应初始化为 0,t2 初始化为 1。

  • 使用 for 循环遍历序列。由于前两项已经初始化,因此循环应从 1 开始,并持续到创建 n 项为止。

  • 在循环内将 t1 和 t2 相加以确定序列中的下一项,然后将结果存储在第三个变量 `nextTerm` 中。

  • 由于 t1 是序列中的当前项,因此将其值打印到控制台。

  • 通过将 t1 设置为 t2,并将 t2 设置为 `nextTerm` 来更新 t1 和 t2 的值,以便它们在循环的下一轮迭代中成为前两项。

代码实现

现在,让我们使用 C++ 语言编写此方法的代码。

示例

#include <iostream>
using namespace std;

int main() {
    int n=8 ; // take user input n, as length of the Fibonacci series
    int t1 = 0, t2 = 1, nextTerm;
 // initialize t1 as 0 and t2 as 1 as these are the first two terms in the Fibonacci series
     
   cout << "Fibonacci Series: ";

    for (int i = 1; i <= n; ++i) {
        cout << t1 << ", ";
        nextTerm = t1 + t2; // nextTerm is the sum of first two terms
        t1 = t2; // after storing the sum in `nextterm` , value of t2 is stored in t1
        t2 = nextTerm; // and value of nextTerm is stored in t2
    }
    return 0;
}

输出

Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13,

时间复杂度:O(n)

空间复杂度:O(1)

结论

在这篇文章中,我们尝试描述如何使用 2 个变量打印斐波那契数列。希望你对这些内容有了更好的了解,并与流程很好地同步。

学习愉快!

更新于: 2023-08-23

417 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告