簡單四則元算的一種遞迴求解

2022-03-24 19:22:31 字數 783 閱讀 5760

問題描述: 輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值

注: 1、表示式只含 +, -, *, / 四則運算符,不含括號

2、表示式數值只包含個位整數(0-9),且不會出現0作為除數的情況

3、要考慮加減乘除按通常四則運算規定的計算優先順序

4、除法用整數除法,即僅保留除法運算結果的整數部分。比如8/3=2。輸入表示式保證無0作為除數情況發生

5、輸入字串一定是符合題意合法的表示式,其中只包括數字字元和四則運算符字元,除此之外不含其它任何字元,不會出現計算溢位情況

• 要求實現函式: 

int calculate(int len,char *expstr)

【輸入】 int len: 字串長度;

char *expstr: 表示式字串;

【輸出】 無

【返回】 計算結果

• 示例 

1) 輸入:char *expstr = 「1+4*5-8/3」

函式返回:19

2) 輸入:char *expstr = 「8/3*3」

函式返回:6 

遞迴實現**如下:vc6.0

#include

using namespace std;

int calculate(int len,char *expstr)

if(flag=='-')

if(flag=='*')

return -10000;//表示式錯誤

}int main()

用棧操作貌似也能實現,**有點多,偷懶了

一種高效的 vector 四則運算處理方法

這裡假設 vector 的運算定義為對運算元 vector 中相同位置的元素進行運算,最後得到乙個新的 vector。具體來說就是,假如vectord1,d2 則,v1 v2等於。實現這樣的運算看起來並不是很難,乙個非常直觀的做法如下所示 vector operator const vector v...

求解簡單的四則運算表示式

輸入乙個四則運算表示式,輸出運算結果,要求對除數為0的情況作特別處理。題目保證輸入與輸出均在雙精度範圍內。輸入格式 輸入在一行中依次輸入運算元1 運算子 運算元2,其間沒有空格,運算元的資料型別為實型。輸出格式 在一行中輸出表示式的運算結果,保留兩位小數。如果除法分母為0,則輸出錯誤資訊 divis...

簡單加減乘除法四則運算表示式的求解

今天看見一道放了好久的題,以前怕麻煩一直擱在一邊,今天仔細想了一下,終於弄懂了,加減乘除法四則運算表示式,主要考慮優先順序,從後往前考慮。具體可參考 求9 3 1 3 10 2 include include include include include include include inclu...