計算Tribonaci佇列

2021-05-28 01:35:41 字數 1039 閱讀 2490

計算tribonaci佇列,規則是t(n) = t(n - 1) + t(n - 2) + t(n -3),其中t(0) = t(1) = 1,t(2) = 2。

函式定義:

int tribonaci(int n)

備註,不考慮證整數溢位,盡可能優化演算法。

/*計算tribonaci佇列

t(n)=t(n-1)+t(n-2)+t(n-3);

其中 t(0)=t(1)=1; t(2)=2;

簡單的說,在計算t(n)的時候要用到t(n – 1)、t(n – 2)和t(n – 3)的結果,

在計算t(n – 1)的時候也要用到t(n – 2)和t(n – 3)的結果,

所以在各項計算的時候必須把以前計算的結果記錄下來,去掉重複計算。

這裡用到的一點小技巧就是要新寫乙個函式用來做這種事情,嗯,看看**吧!

*/#include using namespace std;

/**get the value of t(n – 1), and retrieve the result of

t(n – 2) and t(n – 3).

@param[in] n the n in t(n).

@param[out] mid value of t(n – 2).

@param[out] right value of t(n – 3).

@return value of t(n – 1).

*/int find_fibonacci(int n,int &mid,int &right)

else }

/**find value of t(n).

@param[in] the n in t(n).

@return value of t(n).

@note t(n) = t(n – 1) + t(n – 2) + t(n – 3) (n > 2)

t(0) = t(1) = 1, t(2) = 2.

*/int tribonaci(int n)

void main(){

cout<

計算與資料結構篇 棧 佇列

後進者先出,先進者後出,這就是典型的棧的結構。在生活中刷碗的時候,一摞摞盤子,小時候的玩具槍都有點類似棧這個結構。從棧的操作特性上來看,棧是一種 操作受限 的線性表,只允許在一端插入和刪除資料。有時也有所困惑,陣列和鍊錶的結構已經非常方便快捷了,為什麼還需要棧這個結構呢?棧是為當某個資料集合只涉及在...

簡易計算器 棧佇列的應用

題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...

佇列(迴圈佇列 鏈佇列)

迴圈佇列 cirqueue.h 名稱 迴圈佇列 基於陣列 templateclass cirqueue q size 1 多申請乙個位置,保證隊滿 對空容易判定!cirqueue void enter datatype data 入隊操作 datatype shift 出隊操作 datatype g...