20分救命
查看原帖
20分救命
991345
circle__99楼主2025/7/21 07:48
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
    string s;
    cin >> s;
    stack<int> nums;
    stack<char> ops;
    int num = 0;
    for (int i = 0; i < s.size(); i++) {
        if ('0'<=s[i]&&s[i]<='9') {
            num = num * 10 + (s[i] - '0');
        } else {
            nums.push(num);
            num = 0;
            if (!ops.empty() && ops.top() == '*') {
                int b = nums.top(); nums.pop();
                int a = nums.top(); nums.pop();
                nums.push(a * b);
                ops.pop();
            }
            ops.push(s[i]);
        }
    }
    nums.push(num);
    while (!ops.empty() && ops.top() == '*') {
        int b = nums.top(); nums.pop();
        int a = nums.top(); nums.pop();
        nums.push(a * b);
        ops.pop();
    }
    int res = 0;
    while (!nums.empty()) {
        res += nums.top();
        nums.pop();
    }
    if (res > 9999) {
        res %= 10000;
    }
    cout << res;
    return 0;
}
2025/7/21 07:48
加载中...