九度OJ 1019 簡單計算器

2021-06-26 09:40:46 字數 963 閱讀 3418

#include #include #include #include #include #include #include using namespace std;

/*** 九度:1019:簡單計算器

* [10/9/2014 liu]

*/// 1、將中綴表示式轉換成字首表示式或者是字尾表示式

mapmapoperator;

int getoperpriority(string a)

vectorsplit(string str, string pattern)

return v;

}vectorcentertopreexpression(vectorstr)

else

else

operatorstack.push(str[i]);}}

}}while(!operatorstack.empty())

int n = numstack.size();

vectorstrtemp;

int temp = 0;

while (!numstack.empty())

return strtemp;

}void calculate(stack&intstack,string str)

else if (str == "/" )

else if (str == "-")

else if (str == "+")

}int getresult(string str)

else

}double a = intstack.top();

return a;

}int main()

return 0;

}

上面的**估計不能ac,做的題目太少,但是功能應該實現了

主要是使用了中綴表示式轉換成字首表示式,算是實現了一種演算法,參考如下部落格

hdu 1237 九度oj 1019 簡單計算器

題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...

九度OJ 題目1019 簡單計算器

題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...

九度OJ 題目1019 簡單計算器

題目描述 讀入乙個只包含 的非負整數計算表示式,計算該表示式的值。輸入 測試輸入包含若干測試用例,每個測試用例佔一行,每行不超過200個字元,整數和運算子之間用乙個空格分隔。沒有非法表示式。當一行中只有0時輸入結束,相應的結果不要輸出。輸出 對每個測試用例輸出1行,即該表示式的值,精確到小數點後2位...