题解 P1449 【后缀表达式】

ShineEternal

2018-07-01 15:36:07

Solution

#include<cstdio> #include<cstring> using namespace std; char s[1001]; int a[1001]; int main() { scanf("%s",s); int sum=0; int i=0; while(1) { if(i==strlen(s)) { break; } if(s[i]>='0'&&s[i]<='9') { sum++; while(s[i]>='0'&&s[i]<='9') { a[sum]=a[sum]*10+s[i]-'0'; i++; } } if(s[i]=='+') { a[sum-1]=a[sum-1]+a[sum]; a[sum]=0; sum--; } if(s[i]=='-') { a[sum-1]=a[sum-1]-a[sum]; a[sum]=0; sum--; } if(s[i]=='*') { a[sum-1]=a[sum-1]*a[sum]; a[sum]=0; sum--; } if(s[i]=='/') { a[sum-1]=a[sum-1]/a[sum]; a[sum]=0; sum--; } i++; } printf("%d",a[sum]); return 0; }