Pagini recente » Cod sursa (job #3294057) | Cod sursa (job #3286633) | Cod sursa (job #235543) | Cod sursa (job #3284997) | Cod sursa (job #3294041)
#include <bits/stdc++.h>
#define N 55
using namespace std;
char s[N], * 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()
{
cin.get(s, N);
cout << Eval();
return 0;
}