計算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...