Pagini recente » Cod sursa (job #77126) | Cod sursa (job #3121629) | Cod sursa (job #2817827) | Cod sursa (job #491235) | Cod sursa (job #431854)
Cod sursa(job #431854)
#include <cstdio>
int p;
char s[100010];
int second (), number ();
int first () {
int rez = second ();
for (; s[p] == '+' || s[p] == '-';) {
if (s[p] == '+') p++, rez+= second ();
else p++, rez-= second ();
}
return rez;
}
int second () {
int rez = number ();
for (; s[p] == '*' || s[p] == '/';) {
if (s[p] == '*') p++, rez*= number ();
else p++, rez/= number ();
}
return rez;
}
int number () {
int rez = 0;
if (s[p] == '(') {
p++;
rez = first ();
p++; // ')'
return rez;
}
while (s[p] >= '0' && s[p] <= '9') {
rez = rez * 10 + s[p] - '0';
p++;
}
return rez;
}
int main () {
freopen ("evaluare.in", "r", stdin);
freopen ("evaluare.out", "w", stdout);
scanf ("%s", s);
printf ("%d", first ());
return 0;
}