Pagini recente » Cod sursa (job #771448) | Cod sursa (job #1763729) | Cod sursa (job #419514) | Cod sursa (job #2855964) | Cod sursa (job #2701545)
#include <bits/stdc++.h>
using namespace std;
const int DIM = 1e5 + 5;
int termen();
int factor();
int getNumber();
int p = 0, n;
char s[DIM];
int termen() {
int val = factor(); //a*b*c...*z+A*B*.../..*Z
while (s[p] == '+' || s[p] == '-') {
if (s[p] == '+') ++p, val = val + factor();
else if (s[p] == '-') ++p, val = val - factor();
}
return val;
}
int factor() {
int val = getNumber();
while (s[p] == '*' || s[p] == '/') {
if (s[p] == '*') ++p, val = val * getNumber();
else if (s[p] == '/') ++p, val = val / getNumber();
}
return val;
}
int parsare() {
int x = 0;
while (s[p] >= '0' && s[p] <= '9') x = x * 10 + s[p++] - '0';
return x;
}
int getNumber() {
int x = 0;
if (s[p] >= '0' && s[p] <= '9') x = parsare();
else {++p; x = termen(); ++p;}
return x;
}
int main() {
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
scanf("%s", s);
n = strlen(s) - 1;
int ans = termen();
printf("%d", ans);
return 0;
}