Pagini recente » Cod sursa (job #397408) | Cod sursa (job #2820033) | Cod sursa (job #1196658) | Cod sursa (job #19561) | Cod sursa (job #1916684)
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char sir[100010];
int poz;
int numar()
{
int s=0;
for(;'0'<=sir[poz] && sir[poz]<='9';poz++) s=s*10+sir[poz]-'0';
return s;
}
int solve()
{
int s=0,p=1;
while(sir[poz]!=')')
if(sir[poz]=='+') {s+=p;p=1;poz++;}
else if(sir[poz]=='-') {s+=p;p=-1;poz++;}
else
{
int t=0,x;
if(sir[poz]=='/') {t=1;poz++;}
if(sir[poz]=='*') poz++;
if(sir[poz]=='(') {poz++;x=solve();}
else x=numar();
if(t==0) p*=x;
else p/=x;
}
poz++;
s+=p;
return s;
}
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
scanf("%s",sir);
int n=strlen(sir);
sir[n]=')';
printf("%d",solve());
return 0;
}