#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位...