Pagini recente » Cod sursa (job #2715422) | Cod sursa (job #163727) | Cod sursa (job #1002957) | Cod sursa (job #2926819) | Cod sursa (job #936253)
Cod sursa(job #936253)
#include <stdio.h>
using namespace std;
char s[100010];
int k=0;
void _read()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&s);
}
long se();
long t();
long f()
{
long r=se();
while(s[k]=='+' || s[k]=='-')
if(s[k]=='+')
{
k++;
r+=se();
}
else {
k++;
r-=se();
}
return r;
}
long se()
{
long r=t();
while(s[k]=='*' || s[k]=='/')
if(s[k]=='*'){ k++; r*=t(); }
else { k++; r/=t(); }
return r;
}
long t()
{
long r=0;
if(s[k]=='(')
{
k++;
r=f();
k++;
}
else
while(s[k]>='0' && s[k]<='9')
{
r=r*10+s[k]-48;
k++;
}
return r;
}
int main()
{
_read();
printf("%ld",f());
return 0;
}