Pagini recente » Cod sursa (job #2067114) | Cod sursa (job #1226131) | Cod sursa (job #1033326) | Cod sursa (job #1342887) | Cod sursa (job #1455880)
#include <cstdio>
#include <cstring>
using namespace std;
char ss[100010];
char *s;
inline int expr ();
inline int term ();
inline int eval ()
{
int x = expr ();
while (*s == '+' || *s == '-')
if (*s == '+')
{
++s;
x += expr ();
}
else
{
++s;
x -= expr ();
}
return x;
}
inline int expr ()
{
int x = term ();
while (*s == '*' || *s == '/')
if (*s == '*')
{
++s;
x *= term ();
}
else
{
++s;
x /= term ();
}
return x;
}
inline int term ()
{
int x = 0;
if (*s == '(')
{
++s;
x = eval ();
++s;
}
else while ('0' <= *s && *s <= '9')
{
x = x * 10 + *s - 48;
++s;
}
return x;
}
int main ()
{
freopen ("evaluare.in", "r", stdin);
freopen ("evaluare.out", "w", stdout);
gets (ss);
s = ss;
int sol = eval ();
printf ("%d\n", sol);
return 0;
}