欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

P1449 后缀表达式

程序员文章站 2022-06-05 18:03:26
...

P1449 后缀表达式
题目比较简单,唯一需要注意的地方是可能有连续的数,不是所有数字都是一位数!!因为这个点我卡住了一会儿,下面是AC代码~

#include <iostream>
#include <stack>
using namespace std;
int main()
{
    stack<int > num;// 操作数
    string str;
    cin>>str;
    for(int i=0;i<=str.size()-1;i++)
    {
        if(str[i]>='0'&&str[i]<='9')
        {
            int sum=0;
            while(str[i]>='0'&&str[i]<='9') //解决连续的数字
            {
                sum=sum*10+str[i]-'0';
                i++;
            }
            i--;//回到.之前的一个数字以便于上面的for循环中的i++;
            num.push(sum);
        }
        else if(str[i]!='.'&&str[i]!='@')
        {
            int x1=num.top();
            num.pop();
            int x2=num.top();
            num.pop();
            int x3;
            switch(str[i])
            {
                case '+':x3=x2+x1;break;
                case '-':x3=x2-x1;break;
                case '*':x3=x2*x1;break;
                case '/':x3=x2/x1;break;
            }
            num.push(x3);
        }
    }
    cout<<num.top()<<endl;
    return 0;
}
相关标签: 线性表