Pagini recente » Cod sursa (job #2946432) | Cod sursa (job #2257799) | Cod sursa (job #1130813) | Cod sursa (job #884793) | Cod sursa (job #673096)
Cod sursa(job #673096)
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;
int c;
string s;
int f1();
int f2();
int f3();
int f1()
{
int sol;
sol = f2();
while(s[c] == '+' || s[c] == '-') {
++c;
if(s[c - 1] == '+')
sol += f2();
else sol -+ f2();
}
return sol;
}
int f2()
{
int sol;
sol = f3();
while(s[c] == '*' || s[c] == '/') {
++c;
if(s[c - 1] == '*')
sol *= f3();
else sol /= f3();
}
return sol;
}
int f3()
{
int sol;
sol = 0;
if(s[c] == '(') {
++c;
sol = f1();
++c;
return sol;
}
if(s[c] >= '0')
while(s[c] >= '0') {
sol = sol * 10 + s[c] - '0';
++c;
}
return sol;
}
int main()
{
freopen ("evaluare.in", "r", stdin);
freopen ("evaluare.out", "w", stdout);
cin >> s;
printf("%d", f1());
}