萌新求助

P1449 后缀表达式

xjx199 @ 2023-12-06 16:03:31

#include<bits/stdc++.h>
using namespace std;
stack<int> k;
int main()
{
    int s=0,x,y;
    char ch;
    while(ch!='@'){
        ch=getchar();
        if(ch>='0'&&ch<='9')
        {
            s=s*10+ch-'0';
        }
        else if(ch=='.')
        {
            k.push(s);
            s=0;
        }
        else if(ch!='@')
        {
            x=k.top();
            k.pop();
            y=k.top();
            k.pop();
            switch(ch)
            {
                case'+':k.push(x+y); break;
                case'-':k.push(x-y); break;
                case'*':k.push(x*y); break;
                case'/':k.push(x/y); break;
            }
        }
    }
    cout<<k.top();
    return 0;
}

by Down_syndrome @ 2024-01-16 22:30:30

注意到栈顶元素是 x,第二个元素是 y,而后缀表达式应该是第二个元素对栈顶元素加减乘数,话句话说就是要把 x-yx/y 改成 y-xy/x。 @xjx199


|