Pagini recente » Cod sursa (job #2169658) | Cod sursa (job #3124740) | Cod sursa (job #840824) | Cod sursa (job #1259064) | Cod sursa (job #2146670)
#include <fstream>
#include <iostream>
#define LL long long
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100005], *k = s;
LL sum();
LL fact();
LL eval();
LL fact() {
LL sol = 0;
if (*k == '(') {
k++;
sol = eval();
k++;
} else {
while (*k >= '0' && *k <= '9')
sol = sol*10+*k-'0', k++;
}
return sol;
}
LL sum() {
LL sol = fact();
while (*k == '*' || *k == '/')
if (*k == '*') k++, sol *= fact();
else k++, sol /= fact();
return sol;
}
LL eval() {
LL sol = sum();
while (*k == '+' || *k == '-')
if (*k == '+') k++, sol += sum();
else k++, sol -= sum();
return sol;
}
int main() {
f >> s;
g << eval();
}