使用兩個變數列印斐波那契數列
閱讀標題時,你的腦海中會浮現什麼?在這裡,我們需要僅使用 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 個變數列印斐波那契數列。希望你對這些內容有了更好的瞭解,並與流程很好地同步。
學習愉快!