Pagini recente » Cod sursa (job #3243091) | Cod sursa (job #448614) | Cod sursa (job #177348) | Cod sursa (job #916874) | Cod sursa (job #303567)
Cod sursa(job #303567)
# include <fstream>
using namespace std;
char s[100010], *p=s;
long long termen ();
long long factor ();
long long eval ()
{
long long r=termen ();
while (*p=='+' || *p=='-')
switch (*p)
{
case '+':{++p;
r+=termen ();
break;}
case '-':{++p;
r-=termen ();
break;}
}
return r;
}
long long termen ()
{
long long r=factor();
while (*p=='*' || *p=='/')
switch (*p)
{
case '*':{++p;
r*=factor ();
break;}
case '/':{++p;
r/=factor ();
break;}
}
return r;
}
long long factor ()
{
long long r=0;
if (*p=='(')
{
++p;
r=eval();
++p;
}
else
while (*p>='0' && *p<='9')
{
r=r*10+*p-'0';
++p;
}
return r;
}
int main ()
{
ifstream fin ("evaluare.in");
fin.getline (s, 100010);
ofstream fout ("evaluare.out");
fout<<eval ();
return 0;
}