天梯赛_L2-033 简单计算器(stl, stack)

团体程序设计天梯赛

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;
}