Pagini recente » Cod sursa (job #2657199) | Cod sursa (job #1460289) | Cod sursa (job #2344388) | Cod sursa (job #2668239) | Cod sursa (job #3157426)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("evaluare.in");
ofstream out("evaluare.out");
string s;
int pos;
int add();
int fact(){
int x=0;
if(s[pos]=='('){
++pos;
x=add();
++pos;
}
else{
while(s[pos]>='0' && s[pos]<='9'){
x*=10;
x+=s[pos]-'0';
pos++;
}
}
return x;
}
int mult(){
int res=fact();
while(pos<s.size() && (s[pos]=='*' || s[pos]=='/')){
if(s[pos]=='*'){
++pos;
res*=fact();
}
else{
++pos;
res/=fact();
}
}
return res;
}
int add(){
int res=mult();
while(pos<s.size() && (s[pos]=='+' || s[pos]=='-')){
if(s[pos]=='+'){
++pos;
res+=mult();
}
else{
++pos;
res-=mult();
}
}
return res;
}
int main(){
in>>s;
out<<add();
}