Pagini recente » Cod sursa (job #2635514) | Cod sursa (job #1056285) | Sport | Statisticile problemei Origami | Cod sursa (job #916530)
Cod sursa(job #916530)
#include<cstdio>
using namespace std;
char s[2121434];
char *Buffer=s;
int GetIn()
{
int nr=0;
while(*Buffer>='0'&&*Buffer<='9')
nr=nr*10+*(Buffer++)-'0';
return nr;
}
int Termen();
int Factor();
int Eval()
{
int r=Termen();
while(*Buffer=='+'||*Buffer=='-')
if(*Buffer=='+')
{
*Buffer++;
r+=Termen();
}
else
{
*Buffer++;
r-=Termen();
}
return r;
}
int Termen()
{
int r=Factor();
while(*Buffer=='*'||*Buffer=='/')
if(*Buffer=='*')
{
*Buffer++;
r*=Termen();
}
else
{
*Buffer++;
r/=Termen();
}
return r;
}
int Factor()
{
int r=0;
if(*Buffer=='(')
{
*Buffer++;
r=Eval();
*Buffer++;
}
else
r=GetIn();
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%d",Eval());
return 0;
}