1 条题解

  • 0
    @ 2026-10-25 18:02:03

    思路

    空格分隔非负操作数,@结束,减除保持顺序,保证整除;绝对值可超过有符号64位,标程128位。

    参考程序(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    void out(__int128 x){if(x<0){cout<<'-';x=-x;}if(x>=10)out(x/10);cout<<char('0'+x%10);}int main(){string s;getline(cin,s);vector<__int128>st;for(size_t i=0;i<s.size();){char c=s[i];if(isdigit(c)){__int128 v=0;while(i<s.size()&&isdigit(s[i]))v=v*10+s[i++]-'0';st.push_back(v);}else{++i;if(c=='@')break;if(c=='+'||c=='-'||c=='*'||c=='/'){auto b=st.back();st.pop_back();auto a=st.back();st.pop_back();st.push_back(c=='+'?a+b:c=='-'?a-b:c=='*'?a*b:a/b);}}}out(st.back());cout<<'\n';}
    
    • 1

    【例1-2】后缀表达式的值(空格分隔,整除)

    信息

    ID
    1337
    时间
    10ms
    内存
    64MiB
    难度
    普及−
    标签
    递交数
    1
    已通过
    1
    上传者