Description
Input
Output
Sample Input
1+2*3+4 11
Sample Output
MAC代码:#include<iostream> #include<algorithm> #include<cstring> #include<string> #include<cstdio> using namespace std; #define T 1500005 typedef long long ll; int ToInt(char s) { return s-'0'; } char b[T]; ll a[T]; int main() { #ifdef zsc freopen("Text.txt","r",stdin); #endif // zsc string s,str; int i; ll t,n,sum1,sum2; while(cin >> s) { str.clear(); sum1 = sum2 =0; int topa=-1,topb=-1; cin >> n; t = ToInt(s[0]); for(i=0;s[i];++i){ if(s[i]=='+'){ t = t+ToInt(s[i+1]); } else if(s[i]=='*'){ t = t*ToInt(s[i+1]); } if(s[i]>='0'&&s[i]<='9'){ str += s[i]; } if(s[i]=='+'&&b[topb]=='*'){ while(topb!=-1){ str += b[topb--]; } b[++topb]=s[i]; } else if(s[i]=='*'||s[i]=='+') { b[++topb] = s[i]; } } while(topb!=-1) { str += b[topb--]; } for(i=0;str[i];++i){ if(str[i]>='0'&&str[i]<='9'){ a[++topa] = ToInt(str[i]); } else{ if(str[i]=='+'){ a[topa-1] = a[topa-1]+a[topa]; } else { a[topa-1] = a[topa-1]*a[topa]; } topa--; } } sum2 = a[0];sum1 = t; if(sum1==n&&sum2==n){ cout << "U\n"; } else if(sum1==n){ cout << "L\n"; } else if(sum2==n){ cout << "M\n"; } else { cout << "I\n"; } } return 0; }