Pagini recente » Cod sursa (job #999890) | Cod sursa (job #2035654) | Cod sursa (job #19701) | Cod sursa (job #726497) | Cod sursa (job #1826083)
# include <bits/stdc++.h>
using namespace std;
const int Nmax = 1e5 + 5;
int ind = 1;
char s[Nmax];
int sum();
int get_chr()
{
int ans = 0;
while (s[ind] >= '0' && s[ind] <= '9')
ans = ans * 10 + (s[ind] - '0'), ++ind;
return ans;
}
int element()
{
int ans;
if (s[ind] == '(')
{
++ind;
ans = sum();
++ind;
}
else ans = get_chr();
return ans;
}
int produs()
{
int ans = element();
while (s[ind] == '*' || s[ind] == '/')
if (s[ind] == '*') ++ind, ans *= element();
else if (s[ind] == '/') ++ind, ans /= element();
return ans;
}
int sum()
{
int ans = produs();
while (s[ind] == '+' || s[ind] == '-')
if (s[ind] == '+') ++ind, ans += produs();
else if (s[ind] == '-') ++ind, ans -= produs();
return ans;
}
int main ()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
gets(s + 1);
printf("%d\n", sum());
return 0;
}