团体程序设计天梯赛
L2-033 简单计算器
stl中stack
的使用。水题。
#include<bits/stdc++.h>
using namespace std;
stack<int> nums;
stack<char> ops;
int main(){
int n;
cin >> n;
for(int i = 0; i <= n - 1; i++){
int temp;
cin >> temp;
nums.push(temp);
}
for(int i = 0; i <= n - 2; i++){
char temp;
cin >> temp;
ops.push(temp);
}
long long res = nums.top();
nums.pop();
while((int)nums.size() > 0){
int temp = nums.top();
char op = ops.top();
nums.pop();
ops.pop();
switch(op){
case '+':
res = temp + res;
break;
case '-':
res = temp - res;
break;
case '*':
res = temp * res;
break;
case '/':
if(res == 0){
cout << "ERROR: " << temp << "/0" << endl;
return 0;
}
res = temp / res;
break;
}
}
cout << res << endl;
return 0;
}