Pagini recente » Cod sursa (job #772983) | Cod sursa (job #2952831) | Cod sursa (job #558548) | Cod sursa (job #1122904) | Cod sursa (job #1780487)
#include<stdio.h>
#include<cstring>
using namespace std;
char sir[100100];
int poz=0;
int getNum()
{
int nr=0;
while('0'<=sir[poz]&&sir[poz]<='9')
{
nr*=10;
nr+=sir[poz]-'0';
poz++;
}
// printf("%d ",nr);
return nr;
}
int Solve()
{
int p=1,s=0;
while(sir[poz]!=')')
{
if(sir[poz]=='(')
{
poz++;
p*=Solve();
}
else if(sir[poz]=='*') poz++;
else if(sir[poz]=='/')
{
poz++;
if(sir[poz]=='(')
{
poz++;
p/=Solve();
}
else p/=getNum();
}
else if(sir[poz]<='9'&&sir[poz]>='0') p*=getNum();
else if(sir[poz]=='+')
{
s+=p;
p=1;
poz++;
}
else if(sir[poz]=='-')
{
s+=p;
p=-1;
poz++;
}
}
s+=p;
poz++;
return s;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",sir);
//printf("%s",sir);
int n=strlen(sir);
sir[n]=')';
printf("%d",Solve());
}