Pagini recente » Statistici Mihai Teodora (sunshine93) | Profil samsam | Istoria paginii utilizator/nastinka | Monitorul de evaluare | Cod sursa (job #1946656)
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
const int NMAX = 100005;
char *p = new char[100005];
int EvaluateExpresion();
int Number(){
int number = 0;
if(*p == '('){
p++;
number = EvaluateExpresion();
p++;
}
else{
while(*p >= '0' && *p <= '9'){
number = number * 10 + (*p - '0');
p++;
}
}
return number;
}
int Multiplication(){
int number = Number();
while(*p == '*' || *p == '/'){
if(*p == '*'){
p++;
number *= Number();
}
else{
p++;
number /= Number();
}
}
return number;
}
int EvaluateExpresion(){
int result = Multiplication();
while(*p == '+' || *p == '-'){
if(*p == '+'){
p++;
result += Multiplication();
}
else{
p++;
result -= Multiplication();
}
}
return result;
}
int main(){
in.get(p, NMAX);
out << EvaluateExpresion();
return 0;
}