Pagini recente » Cod sursa (job #505838) | Cod sursa (job #2318843) | Cod sursa (job #2741685) | Cod sursa (job #1735063) | Cod sursa (job #1698087)
#include<fstream>
#include<algorithm>
#include<vector>
#include<string.h>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char s[100010];
int i = 0,l;
int sum();
int inter()
{
if (s[i] == '(')
{
++i;
return sum();
}
else
{
int nr=0;
while (i<l && s[i] >= '0' && s[i] <= '9')
nr = nr * 10 + (s[i] - '0'),++i;
return nr;
}
}
int multiply()
{
int a = inter();
if (s[i] == '*')
{
++i;
a*=inter();
}
else if (s[i] == '/')
{
++i;
a/=inter();
}
else if (s[i] == ')')
++i;
return a;
}
int sum()
{
int a = multiply();
if (s[i] == '+')
{
++i;
a += multiply();
}
else if (s[i] == '-')
{
++i;
a -= multiply();
}
else if (s[i] == ')')
++i;
return a;
}
int main()
{
in >> s;
l = strlen(s);
out << sum();
return 0;
}