使用兩個變數列印斐波那契數列


閱讀標題時,你的腦海中會浮現什麼?在這裡,我們需要僅使用 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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告