Pagini recente » Cod sursa (job #2332211) | Cod sursa (job #2171516) | Cod sursa (job #1219120) | Cod sursa (job #1966650) | Cod sursa (job #2373611)
#include <fstream>
#include <cstring>
using namespace std;
char s[100005];
int i = 0;
int num();
int mult();
int solve() {
int t = mult();
while (s[i] == '+' || s[i] == '-') {
if (s[i] == '+') {
i++;
t += mult();
}
else {
i++;
t -= mult();
}
}
return t;
}
int mult() {
int t = num();
while (s[i] == '*' || s[i] == '/') {
if (s[i] == '*') {
i++;
t *= num();
}
else {
i++;
t /= num();
}
}
return t;
}
int num() {
int t = 0;
if (s[i] == '(') {
i++;
t = solve();
i++;
}
else {
while (s[i] >= '0' && s[i] <= '9') {
t = t*10 + (s[i] - '0');
i++;
}
}
return t;
}
int main() {
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f.getline(s, 100005);
g << solve();
}