题目描述
输入一个逆波兰式 ,又称后缀表达式(将运算符写在操作数之后)计算出它的值。保证数据合法,不会出现除0的情况,输入的数字都是整数
输入
一个逆波兰式
输出
值 计算结果保留2位小数
样例输入
样例输出
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include<bits/stdc++.h> using namespace std; int main() { stack<double> S; string x; while (cin >> x) { istringstream iss(x); double r; if (iss >> r) S.push(r); else { double second = S.top(); S.pop(); double first = S.top(); S.pop(); double res = first; if (x[0] == '+') { res += second; } else if (x[0] == '-') { res -= second; } else if (x[0] == '*') { res *= second; } else { res /= second; } S.push(res); } } cout << fixed << setprecision(2) << S.top() << endl; return 0; }
|