Pagini recente » Cod sursa (job #1775862) | Cod sursa (job #192490) | Cod sursa (job #2291058) | Cod sursa (job #179217) | Cod sursa (job #2307718)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s;
int p;
int fact();
int termen();
int eval() {
int r = termen();
while (p<s.size() && (s[p] == '+' || s[p] == '-')) {
++p;
if (s[p-1]=='+') r+=termen();
else r-=termen();
}
return r;
}
int termen() {
int r = fact();
while (p<s.size() && (s[p] == '*' || s[p] == '/')) {
++p;
if (s[p-1] == '*') r*=fact();
else r/=fact();
}
return r;
}
int fact() {
int r = 0;
if (s[p] == '(') {
++p;
r = eval();
++p;
} else {
while (p<s.size() && s[p]>='0' && s[p]<='9') {
r = r*10 + (s[p]-'0');
++p;
}
}
return r;
}
int main() {
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
cin>>s;
cout<<eval();
return 0;
}