Pagini recente » Cod sursa (job #2222042) | Cod sursa (job #2942106) | Cod sursa (job #1197430) | Cod sursa (job #54441) | Cod sursa (job #2618440)
#include <bits/stdc++.h>
#define ll long long
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pli pair<ll,int>
#define pil pair<int,ll>
#define fi first
#define se second
#define inf (INT_MAX/2-1)
#define infl (1LL<<60)
#define vi vector<int>
#define vl vector<ll>
#define pb push_back
#define sz(a) (int)(a).size()
#define all(a) begin(a),end(a)
#define y0 y5656
#define y1 y7878
#define y2 y9090
#define aaa system("pause");
#define dbg(x) cerr<<(#x)<<": "<<(x)<<'\n',aaa
#define dbga(x,n) cerr<<(#x)<<"[]: ";for(int _=0;_<n;_++)cerr<<x[_]<<' ';cerr<<'\n',aaa
#define dbgs(x) cerr<<(#x)<<"[stl]: ";for(auto _:x)cerr<<_<<' ';cerr<<'\n',aaa
#define dbgp(x) cerr<<(#x)<<": "<<x.fi<<' '<<x.se<<'\n',aaa
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");
char last;
int paranteza();
int inmultire();
int adunare();
int getint () {
int ans = 0;
while (isdigit(last)) {
ans = (ans * 10 + last - '0');
fin.get(last);
}
return ans;
}
int paranteza () { ///(?) sau intreg
int ans;
if (last == '(') {
fin.get(last);
ans = adunare();
fin.get(last);
} else ans = getint();
return ans;
}
int inmultire () {
int ans = paranteza();
while (last == '*' || last == '/') {
if (last == '*') {
fin.get(last);
ans *= paranteza();
}
else {
fin.get(last);
ans /= paranteza();
}
}
return ans;
}
int adunare () {
int ans = inmultire();
while (last == '+' || last == '-') {
if (last == '+') {
fin.get(last);
ans += inmultire();
} else {
fin.get(last);
ans -= inmultire();
}
}
return ans;
}
int main () {
fin.get(last);
fout << adunare();
fin.close(); fout.close();
return 0;
}