Pagini recente » Rating Delannoy (Delannoy) | Cod sursa (job #1733060) | Cod sursa (job #1302340) | Cod sursa (job #3137129) | Cod sursa (job #1109564)
#include <cstdio>
using namespace std;
char exp[100010];
int pz;
int p_1();
int p_3()
{
int val = 1337, nr = 0;
if (exp[pz] == '(')
{
++pz;
val = p_1();
++pz;
}
else if (exp[pz] >= '0' && exp[pz] <= '9')
{
for ( ; exp[pz] >= '0' && exp[pz] <= '9'; ++pz)
nr = nr * 10 + exp[pz] - '0';
val = nr;
}
return val;
}
int p_2()
{
int val = p_3();
while(exp[pz] == '*' || exp[pz] == '/')
{
if (exp[pz] == '*')
{
++pz;
val *= p_3();
}
else
{
++pz;
val /= p_3();
}
}
return val;
}
int p_1()
{
int val = p_2();
while(exp[pz] == '+' || exp[pz] == '-')
{
if (exp[pz] == '+')
{
++pz;
val += p_2();
}
else
{
++pz;
val -= p_2();
}
}
return val;
}
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
gets(exp);
printf("%d\n", p_1());
fclose(stdout);
return 0;
}