03 四則運算表示式求值
輸入輸入為四則運算表示式,僅由陣列、四則運算符、左右括號組成,不含空格。
假設運算子結果都是整數。
輸出輸出這個表示式的值
分析首先我們要搞清楚表示式的定義是什麼:
表示式:由乙個或者多個項組成,多個項的表示式由+ -
連線
項:由乙個或者多個因子組成,多個因子由* \
連線
因子:由(表示式)
或者整數
組成
我們發現,這是乙個遞迴定義的東西,自然我們也可以用遞迴函式來解決問題
**實現
事實上本題還可以用棧的方法來解決,效率更高#include
#include
using
namespace std;
double
expression_value()
;double
term_value()
;double
factor_value()
;double
expression_value()
}return result;
}double
term_value()
}return result;
}double
factor_value()
result =
atof
(nums.
c_str()
);}else
return result;
}int
main()
四則運算表示式求值
表示式求值是關於棧的應用,涉及到中綴與字尾式的轉換,本文關於10以內不帶括號的四則運算。9 3 4 x 3 24 1 x 9 5 9 9 5 x 9 4 6 2 x 3 1 42 思路 遇到數字直接入數字棧。遇到運算子,第乙個運算子直接入符號棧,後面的需要與符號棧棧頂元素比較優先順序。若當前優先順序...
百練 四則運算表示式求值
總時間限制 1000ms 記憶體限制 65536kb 描述 求乙個可以帶括號的小學算術四則運算表示式的值 輸入一行,乙個四則運算表示式。表示乘法,表示除法 輸出一行,該表示式的值,保留小數點後面兩位 樣例輸入 輸入樣例1 3.4輸入樣例2 7 8.3 輸入樣例3 3 4.5 7 2 3 3 4 2 ...
四則運算表示式總結
這兩周完成了第乙個個人專案 四則運算表示式。在整個開發的過程中我有一些收穫也發現了自身的一些問題。下面就分條簡述一下。1 實現隨機生成任意長度的四則表示式 括號 2 實現四則表示式的計算 包括分數 3 實現接收使用者對某四則運算表示式計算的結果並判斷正確性。4 實現結合1 2 3功能的mfc應用程式...