1918 Problem A 簡單計算器

2021-08-21 11:12:59 字數 1294 閱讀 6765

問題 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...