Pagini recente » Cod sursa (job #2705335) | Cod sursa (job #881788) | Cod sursa (job #447166) | Cod sursa (job #2514257) | Cod sursa (job #3212307)
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
#define pb push_back
const int N = 2e6+5;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int p = 0, factor(), termen(), suma();
int main()
{
fin >> s;
fout << suma();
return 0;
}
int suma() {
int rez = termen();
while (s[p] == '+' || s[p] == '-'){
p++;
if (s[p-1] == '+') rez = rez + termen();
else rez = rez - termen();
}
return rez;
}
int termen() {
int rez = factor();
while (s[p] == '*' || s[p] == '/'){
p++;
if (s[p-1] == '*') rez = rez * factor();
else rez = rez / factor();
}
return rez;
}
int factor(){
if (s[p] == '('){
p++;
int rez = suma();
p++;
return rez;
}
int rez = 0;
while ('0' <= s[p] && s[p] <= '9'){
rez = rez * 10 + s[p] - '0';
p++;
}
return rez;
}