标题 表达式求值

题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。

输入 输入仅有一行,为需要你计算的表达式,表达式中只包含数字、加法运算符“+”和乘法运算符“*”,且没有括号。 所有参与运算的数字均为 0 到 231-1 之间的整数。 输入数据保证这一行只有0~9、+、*这12种字符。

输出 输出只有一行,包含一个整数,表示这个表达式的值。注意:当答案长度多于4位时,请只输出最后4位,前导0不输出

#include<bits/stdc++.h>//万能头文件
using namespace std;
int main()
{
    vector<long long>cc;
    long long n;
    char op;
    cin>>n;
    cc.push_back(n);
    long long sum=0;
    while(cin>>op>>n)
    {
        n%=10000;//防止数值过大
        if(op=='+')
            cc.push_back(n);
        else if(op=='*')
            cc[cc.size()-1]*=n;//更新向量数组中最后一个数
        cc[cc.size()-1]%=10000;//防止数值过大
    }
    for(int i=0;i<cc.size();i++)
        sum+=cc[i];//将向量数组中的数相加
    sum%=10000;//输出后四位
    cout<<sum;
}