Pagini recente » Cod sursa (job #1317725) | Rating Vartolomei Tudor (vtudor95) | Cod sursa (job #989588) | Cod sursa (job #398092) | Cod sursa (job #3201200)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char c[100002], i;
static inline int Expresie();
static inline int Termen();
static inline int Factor();
static inline int Numar();
static inline int Expresie() {
int nm = Termen();
while(c[i] == '+' || c[i] == '-') {
if(c[i] == '+') {
i++;
nm += Termen();
}
else {
i++;
nm -= Termen();
}
}
return nm;
}
static inline int Termen() {
int nm = Factor();
while(c[i] == '*' || c[i] == '/') {
if(c[i] == '*') {
i++;
nm *= Factor();
}
else {
i++;
nm /= Factor();
}
}
return nm;
}
static inline int Factor() {
int nm;
if(c[i] == '(') {
i++;
nm = Expresie();
i++;
}
else nm = Numar();
return nm;
}
static inline int Numar() {
int nm = 0;
while('0' <= c[i] && c[i] <= '9') {
nm = nm * 10 + c[i] - '0';
i++;
}
return nm;
}
int main() {
fin >> c;
fout << Expresie();
return 0;
}