Pagini recente » Cod sursa (job #3351035) | Cod sursa (job #223940) | Cod sursa (job #755040) | Cod sursa (job #417689) | Cod sursa (job #3355640)
#include <fstream>
#include<algorithm>
#include<cmath>
#include<string>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string s;
int i=0; // indicile nostru
int ev();
int fact(){ // aflam nr
int rez=0;
if(s[i]=='('){
i++;
rez=ev();
i++;
return rez;
}
while(i<s.size() && s[i]>='0' && s[i]<='9'){
rez=rez*10+s[i]-'0';
i++;
}
return rez;
}
int ter(){
int rez=fact();
while(i<s.size() && (s[i]=='*' || s[i]=='/')){
if(s[i]=='*'){
i++;
rez*=fact();
}
else{
i++;
rez/=fact();
}
}
return rez;
}
int ev(){
int rez=ter();
while(i<s.size() && (s[i]=='+' || s[i]=='-')){
if(s[i]=='+'){
i++;
rez+=ter();
}
else {
i++;
rez-=ter();
}
}
return rez;
}
int main(){
cin>>s;
cout<<ev();
}