遞迴 表示式計算

2021-09-29 05:30:49 字數 758 閱讀 6805

輸入為四則運算表示式,僅由數字、+、-、*、/、(、)組成,沒有空格,要求求其值。假設運算子結構都是整數,「/」結果也是整數

思路就是遞迴,首先也要寫出表示式的定義

(1)表示式由項和「+」、「-」組成。要麼是單獨乙個項,要麼就是項+項,項-項

(2)項由因子和「/」、「*」組成。要麼是單獨乙個因子,要麼就是因子/因子,因子**因子。

(3)因子就是兩個括號加表示式或整數。

可以看出表示式是個遞迴形式,終止條件為因子為整數時。

#include

#include

#include

using

namespace std;

intfactor_value()

;//因子

intterm_value()

;//項

intexpression_value()

;//表示式

intmain()

intexpression_value()

else more=

false;}

return result;

}int

term_value()

else

break;}

return result;

}int

factor_value()

else

}return result;

}}

遞迴 表示式計算 c

宣告 解法來自 北京大學 郭煒老師的程式設計與演算法 二 演算法基礎 僅作學習筆記 輸入為四則運算表示式,僅由數字 組成,沒有空格,要求求其值。假設運算子結果都是整數。結果也是整數。2 3 5 7 9 3 include include include include using namespace...

表示式計算

棧的應用舉例 棧在表示式計算過程中的應用 建立運算元棧和運算子棧。運算子有優先順序。規則 自左至右掃瞄表示式,凡是遇到運算元一律進運算元棧。當遇到運算子時,如果它的優先順序比運算子棧棧頂元素的優先順序高就進棧。反之,取出棧頂運算子和運算元棧棧頂的連續兩個運算元進行運算,並將結果存入運算元棧,然後繼續...

表示式計算

表示式計算對於我們人來說,喜歡通過中綴表示式來計算,而計算機則不一樣,需要通過字尾表示式來計算,首先通過例項來介紹一下中綴表示式和字尾表示式 例子 中綴表示式 3 5 2 3 6 字尾表示式 3 5 2 3 6 那麼轉換規則是怎麼樣的呢?規則 從左到右遍歷中綴表示式的每個數字和符號,若是數字就輸出,...