這次的題目很簡單,但是我看到網上很多人用棧實現,並且在我印象中資料結構書上用的也是棧,我個人覺得棧和佇列結合著用方法更加,**簡潔明瞭,很短很精悍。該題沒有要求加上括號,但是如果棧和佇列結合著用即使加上括號也是很方便計算的。
問題描述:
輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值
注:3.1、表示式只含 +, -, *, / 四則運算符,不含括號
3.2、表示式數值只包含個位整數(0-9),且不會出現0作為除數的情況
3.3、要考慮加減乘除按通常四則運算規定的計算優先順序
3.4、除法用整數除法,即僅保留除法運算結果的整數部分。比如8/3=2。輸入表示式保證無0作為除數情況發生
3.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
//分析可知,只有四則運算,所以*,/優先順序高可直接運算,+-優先順序低可最後運算
#include #include using namespace std;
int calculate(int len,char *expstr)
else
}int result = *data.begin()-'0';
for(vector::iterator p = data.begin()+1;p != data.end();++p)
else if(*p == '-')
result -= *++p-'0';
} return result;
}int main(int argc, char* argv)
{ char a = "8/3*3";
cout<
華為機試簡單四則運算
簡單四則運算 問題描述 輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值 注 1 表示式只含 四則運算符,不含括號 2 表示式數值只包含個位整數 0 9 且不會出現0作為除數的情況 3 要考慮加減乘除按通常四則運算規定的計算優先順序 4 除法用整數除法,即僅保留除法運算結果的整數部分...
華為機試 四則運算
題目 四則運算 問題描述 輸入乙個只包含個位數字的簡單四則運算表示式字串,計算該表示式的值 注 3.1 表示式只含 四則運算符,不含括號 3.2 表示式數值只包含個位整數 0 9 且不會出現0作為除數的情況 3.3 要考慮加減乘除按通常四則運算規定的計算優先順序 3.4 除法用整數除法,即僅保留除法...
四則運算 華為機試 C C
請實現如下介面 功能 四則運算 輸入 strexpression 字串格式的算術表示式,如 3 2 返回 算術表示式的計算結果 publicstaticintcalculate string strexpression 請實現 return0 約束 pucexpression字串中的有效字元包括 0...