顺序反了就错了

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

运行下面这段程序——注意减法两个数的先后:

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int calc(const vector<string>& tokens) {
    vector<int> st;
    for (const string& t : tokens) {
        if (t == "+" || t == "-" || t == "*") {
            int b = st.back(); st.pop_back();
            int a = st.back(); st.pop_back();
            if (t == "+") st.push_back(a + b);
            else if (t == "-") st.push_back(a - b);
            else st.push_back(a * b);
        } else {
            st.push_back(stoi(t));
        }
    }
    return st.back();
}

int main() {
    cout << calc({"5", "1", "-"}) << endl;
}

(本题用 g++ -std=c++17 -O0 编译。)

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论