Pagini recente » Cod sursa (job #13485) | Cod sursa (job #1323431) | Cod sursa (job #3129417) | Cod sursa (job #2989313) | Cod sursa (job #2639098)
#include <bits/stdc++.h>
#define NMAX 100001
using namespace std;
typedef long long ll;
string file="evaluare";
ifstream fin(file+".in");
ofstream fout(file+".out");
int termen();
int factor();
int calcul();
int i;
char s[NMAX];
int main() {
fin >> s;
fout << calcul();
return 0;
}
int calcul() {
int x = termen();
while (s[i] == '+' || s[i] == '-') {
if (s[i] == '+') {
i++;
x = x + termen();
} else {
i++;
x = x - termen();
}
}
i++;
return x;
}
int termen() {
int x = factor();
while (s[i] == '*' || s[i] == '/') {
if (s[i] == '*') {
i++;
x = x * factor();
} else {
i++;
x = x / factor();
}
}
return x;
}
int factor() {
int x = 0;
if (s[i] == '(') {
i++;
return calcul();
} else {
while (s[i] >= '0' && s[i] <= '9') {
x = x * 10 + s[i] - '0';
i++;
}
return x;
}
}