Pagini recente » Cod sursa (job #1913849) | Cod sursa (job #810087) | Cod sursa (job #1329369) | Cod sursa (job #461637) | Cod sursa (job #2000378)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
int f1();
int f2();
string s;
int i;
int f3()
{
int nr = f1();
while(s[i] == '+' || s[i] == '-')
{
if(s[i] == '+')
{
++i;
nr += f1();
}
else
{
++i;
nr -= f1();
}
}
return nr;
}
int f1()
{
int nr = f2();
while(s[i] == '*' || s[i] == '/')
{
if(s[i] == '*')
{
++i;
nr *= f2();
}
else
{
++i;
nr /= f2();
}
}
return nr;
}
int f2()
{
int nr = 0;
if(s[i] == '(')
{
++i;
nr = f3();
++i;
}
else
{
while(s[i] >= '0' && s[i] <= '9')
{
nr = nr * 10 + s[i] - '0';
++i;
}
}
return nr;
}
int main()
{
in >> s;
out << f3();
return 0;
}