Pagini recente » Fi si Cri | Profil razvanboabes | Timetravel | Istoria paginii utilizator/catalinaionela77 | Cod sursa (job #468665)
Cod sursa(job #468665)
#include<fstream>
#include<string>
using namespace std;
char s[100010], *p=s;
int exp();
int termen();
int factor()
{
int nr = 0;
if(*p=='(')
{
++p;
nr = exp();
++p; // sarim peste ')'
}
else
while(isdigit(*p))
{
nr=nr*10+*p-'0';
++p;
}
return nr;
}
int termen()
{
int r = factor();
while(*p=='*'||*p=='/')
{
if(*p=='*') { ++p; r *= factor(); }
if(*p=='/') { ++p; r /= factor(); }
}
return r;
}
int exp()
{
int r = termen();
while(*p=='+'||*p=='-')
{
if(*p=='+') { ++p; r += termen(); }
if(*p=='-') { ++p; r -= termen(); }
}
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&s);
printf("%d",exp());
return 0;
}