Pagini recente » Cod sursa (job #8440) | Cod sursa (job #63989) | Cod sursa (job #643766) | Cod sursa (job #1695024) | Cod sursa (job #1131192)
#include <fstream>
#define NM 100010
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char S[NM], *p;
long long Eval();
long long Termen();
long long Factor();
int main ()
{
f >> S;
p=S;
g << Eval() << '\n';
return 0;
}
long long Eval ()
{
long long ANS=Termen();
char c;
while (*p=='+' || *p=='-')
{
c=*p;
++p;
if (c=='+')
ANS+=Termen();
else
ANS-=Termen();
}
return ANS;
}
long long Termen ()
{
long long ANS=Factor();
char c;
while (*p=='*' || *p=='/')
{
c=*p;
++p;
if (c=='*')
ANS*=Factor();
else
ANS/=Factor();
}
return ANS;
}
long long Factor ()
{
long long ANS=0;
if (*p=='(')
{
++p;
ANS=Eval();
++p;
return ANS;
}
while ('0'<=*p && *p<='9')
{
ANS=10*ANS + *p-'0';
++p;
}
return ANS;
}