Pagini recente » Cod sursa (job #2889893) | Cod sursa (job #383381) | Cod sursa (job #1886061) | Cod sursa (job #912317) | Cod sursa (job #856471)
Cod sursa(job #856471)
#include <cstdio>
char s[100001];
int i;
long eval();
long factor()
{
long x=0;
if(s[i]=='(')
{
i++;
x=eval();
i++;
}
else
while(s[i]>='0' && s[i]<='9')
{
x=x*10+(s[i]-'0');
i++;
}
return x;
}
long termen()
{
long x=factor();
while(s[i]=='*' || s[i]=='/')
{
if(s[i]=='*')
{
i++;
x*=factor();
}
else
{
i++;
x/=factor();
}
}
return x;
}
long eval()
{
long x=termen();
while(s[i]=='+' || s[i]=='-')
{
if(s[i]=='+')
{
i++;
x+=termen();
}
else
{
i++;
x-=termen();
}
}
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%ld",eval());
return 0;
}