Pagini recente » Cod sursa (job #1161477) | Cod sursa (job #249149) | Cod sursa (job #3178329) | Cod sursa (job #2734541) | Cod sursa (job #2516107)
#include <fstream>
using namespace std;
#define dmax 100001
char s[dmax], *p=s;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
long long eval();
long long termen();
long long factor();
long long eval(){
long long r=termen();
while (*p=='+' || *p=='-'){
if (*p=='+'){
++p;
r=r+termen();
}
else{
++p;
r=r-termen();
}
}
return r;
}
long long termen(){
long long r=factor();
while (*p=='*' || *p=='/'){
if (*p=='*'){
++p;
r=r*factor();
}
else{
++p;
r=r/factor();
}
}
return r;
}
long long factor(){
long long r=0;
if (*p=='('){
++p;
r=eval();
++p;
}
else{
while (*p>='0' && *p<='9'){
r=r*10+*p-'0';
++p;
}
}
return r;
}
int main(){
cin>>s;
cout<<eval();
cin.close();
cout.close();
return 0;
}