啥问题呀

P1449 后缀表达式

幽灵特工 @ 2021-01-04 12:54:01

#include<bits/stdc++.h>
using namespace std;
string s;
stack <long long> k;
int main(){
    cin>>s;
    for(int i=0;s[i]!='@';i++){
        int w=0;
        switch (s[i]){
            case '+':{
                long long a=k.top();
                k.pop();
                long long b=k.top();
                k.pop();
                k.push(a+b);
                break;
            }
            case '-':{
                long long a=k.top();
                k.pop();
                long long b=k.top();
                k.pop();
                k.push(a-b);
                break;
            }
            case '*':{
                long long a=k.top();
                k.pop();
                long long b=k.top();
                k.pop();
                k.push(a*b);
                break;
            }
            case '/':{
                long long a=k.top();
                k.pop();
                long long b=k.top();
                k.pop();
                k.push(a/b);
                break;
            }
            case '.':{
                k.push(w);
                break;
            }
            default:{
                w+=s[i]-'0';
                break;
            }
        }
    }
    long long ans=k.top();
    cout<<ans;
}

by Terraria @ 2021-01-04 13:21:11

w+=s[i]-'0'; 这个错了。

对于一个大于2位的数字你就算错了。


by 幽灵特工 @ 2021-01-05 20:17:48

@黄耀风 我这不是char型么


|