Pagini recente » Cod sursa (job #82123) | Cod sursa (job #2527968) | Cod sursa (job #31597) | Cod sursa (job #215221) | Cod sursa (job #3201199)
#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++] == '+') nm += Termen();
else nm -= Termen();
}
return nm;
}
static inline int Termen() {
int nm = Factor();
while(c[i] == '*' || c[i] == '/') {
if(c[i++] == '*') nm *= Factor();
else 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;
}