Pagini recente » test.cex2 | Cod sursa (job #766115) | Cod sursa (job #840747) | Cod sursa (job #757917) | Cod sursa (job #2072919)
#include <bits/stdc++.h>
using namespace std;
char *p = new char[100004];
int calc(void);
int get(void);
int mul(void);
int calc() {
int r = get();
while(*p == '+' || *p == '-') {
if(*p == '+')
p++, r += get();
else
p++, r -= get();
}
return r;
}
int get() {
int r = mul();
while(*p == '*' || *p == '/') {
if(*p == '*')
p++, r *= mul();
else
p++, r /= mul();
}
return r;
}
int mul() {
int r = 0;
if(*p == '(') {
p++;
r = calc();
p++;
}
else {
while(isdigit(*p))
r = r * 10 + *p - '0', p++;
}
return r;
}
int main() {
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
cin >> p;
cout << calc();
return 0;
}