#include<iostream> #include<string> using namespace std; int lips(string b){ static int i=0; int k=0,a[100],temp=i+1,j=0,sum=0; if(b[i]=='('){ i+=2; k++; } while(k){ while(isdigit(b[i])){ a[j]=b[i]-'0'; i++;j++; } if(b[i]=='('){ a[j]=lips(b); j++; } if(b[i]==')') k--; } sum=a[0]; if(b[temp]=='+'){ for(int k=1;k<j;k++){ sum+=a[k]; } } if(b[temp]=='-'){ for(int k=1;k<j;k++){ sum-=a[k]; } } if(b[temp]=='*'){ for(int k=1;k<j;k++){ sum*=a[k]; } } if(b[temp]=='/'){ for(int k=1;k<j;k++){ sum/=a[k]; } } temp=1; i++; return sum; } int main(void){ string s,b; getline(cin,s); for(int i=0;i<s.length();i++){ if(s[i]!=' ') b+=s[i]; } cout<<lips(b); } |
Double click to view unformatted code.