Pagini recente » Cod sursa (job #2779155) | Cod sursa (job #65404) | Cod sursa (job #2253770) | Cod sursa (job #2898182) | Cod sursa (job #1910481)
#include <cstdio>
#include <cstring>
using namespace std;
char v[100010],p;
int exp();
int term();
int fact();
int exp()
{
int x;
x=term();
while(v[p]=='+'||v[p]=='-')
if(v[p]=='+')
p++,x+=term();
else p++,x-=term();
return x;
}
int term()
{
int x;
x=fact();
while(v[p]=='*'||v[p]=='/')
if(v[p]=='*')
p++,x*=fact();
else p++,x/=fact();
return x;
}
int fact()
{
int x;
if(v[p]=='(')
p++,x=exp(),p++;
else
{
x=0;
while(v[p]<='9'&&v[p]>='0')
x=x*10+v[p]-'0',p++;
}
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",v);
printf("%d",exp());
return 0;
}