表示式可以是只有乙個項組成,或者是多個項加減組成;項可以由乙個因子組成,或者是多個因子乘除組成;
因子可以由乙個整數或者乙個(表示式)組成。
還有一種方法是通過棧來實現,後面更新~(因為遞迴就是通過棧實現的)除錯**:結果:#include#includeusing namespace std;
int term();
int expr();
int factor();
int expr()
{ cout<
(2+3)+(5+7)+9/3
---expr---
---term---
---factor---
factor_cin.peek(): (
---expr---
---term---
---factor---
factor_cin.peek(): 2
factor_return_result: 2
---factor---end
term_first_result: 2
term_cin.peek(): +
term_return_result: 2
---term---end
expr_first_result: 2
expr_cin.peek(): +
---term---
---factor---
factor_cin.peek(): 3
factor_return_result: 3
---factor---end
term_first_result: 3
term_cin.peek(): )
term_return_result: 3
---term---end
expr_cin.peek(): )
expr_return_result: 5
---expr---end
factor_return_result: 5
---factor---end
term_first_result: 5
term_cin.peek(): +
term_return_result: 5
---term---end
expr_first_result: 5
expr_cin.peek(): +
---term---
---factor---
factor_cin.peek(): (
---expr---
---term---
---factor---
factor_cin.peek(): 5
factor_return_result: 5
---factor---end
term_first_result: 5
term_cin.peek(): +
term_return_result: 5
---term---end
expr_first_result: 5
expr_cin.peek(): +
---term---
---factor---
factor_cin.peek(): 7
factor_return_result: 7
---factor---end
term_first_result: 7
term_cin.peek(): )
term_return_result: 7
---term---end
expr_cin.peek(): )
expr_return_result: 12
---expr---end
factor_return_result: 12
---factor---end
term_first_result: 12
term_cin.peek(): +
term_return_result: 12
---term---end
expr_cin.peek(): +
---term---
---factor---
factor_cin.peek(): 9
factor_return_result: 9
---factor---end
term_first_result: 9
term_cin.peek(): /
---factor---
factor_cin.peek(): 3
factor_return_result: 3
---factor---end
term_cin.peek():
term_return_result: 3
---term---end
expr_cin.peek():
expr_return_result: 20
---expr---end
表示式求值 (遞迴實現)
dr.kong設計的機械人卡多掌握了加減法運算以後,最近又學會了一些簡單的函式求值,比如,它知道函式min 20,23 的值是20 add 10,98 的值是108等等。經過訓練,dr.kong設計的機械人卡多甚至會計算一種巢狀的更複雜的表示式。假設表示式可以簡單定義為 1.乙個正的十進位制數 x是...
表示式求值(遞迴)
給定乙個只包含加法和乘法的算術表示式,請你程式設計計算表示式的值。輸入僅有一行,為需要你計算的表示式,表示式中只包含數字 加法運算子 和乘法運算子 且沒有括號,所有參與運算的數字均為 0 到 231 1 之間的整數。輸入資料保證這一行只有 0 9 這 12 種字元。輸入樣例 1 1 1 3 4 輸入...
表示式求值(遞迴)
題目 輸入為四則運算表示式,僅由整數 組成,沒有空格,要求求其值。假設運算子結果都是整數。結果也是整數。include include include using namespace std 讀入乙個因子並返回其值 intfactor value 讀入乙個項並返回其值 intterm value 讀...