問題 a: 簡單計算器
時間限制: 1 sec 記憶體限制: 32 mb
提交: 367 解決: 175
題目描述
讀入乙個只包含 +, -, *, / 的非負整數計算表示式,計算該表示式的值。
輸入
測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。
輸出
對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。
樣例輸入
30 / 90 - 26 + 97 - 5 - 6 - 13 / 88 * 6 + 51 / 29 + 79 * 87 + 57 * 92
0樣例輸出
12178.21
經驗總結
原理為中綴表示式轉字尾表示式,最後按照相應規則處理數字棧和符號棧即可,似乎沒有坑~~
正確**
#include
#include
#include
#include
#include
#include
using
namespace
std;
int str_to_int(const
string &string_temp)
void compute(stack
&number,stack
&sign)
else
if(op=="-")
else
if(op=="*")
else
}double dispose(unordered_map
isp,unordered_map
osp,string str)
else
if(flag==0)
else}}
sign.push(temp);
flag=0;}}
while(sign.empty()==false)
return number.top();
}int main()
else
}if(temp!="0")
else
}return
0;}
codeup1918簡單計算器
讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位。30 90 26 9...
codeup 1918 簡單計算器
問題 a 簡單計算器 時間限制 1 sec 記憶體限制 32 mb 提交 2132 解決 877 提交 狀態 討論版 命題人 外部匯入 題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空...
codeup 1918 簡單計算器
codeup 1918 include include include include include include using namespace std struct node string srt stack s 操作符棧 queue q 字尾表示式序列 map char int op vo...