Pagini recente » Cod sursa (job #1798855) | Cod sursa (job #705982) | Cod sursa (job #1467131) | Cod sursa (job #2127202) | Cod sursa (job #3266129)
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int k;
string s;
int semn();
int factor();
int calc()
{
int x = semn();
while (s[k] == '-' || s[k] == '+')
{
if (s[k] == '-')
{
k++;
x -= semn();
}
else
if (s[k] == '+')
{
k++;
x += semn();
}
}
return x;
}
int semn()
{
int x = factor();
while (s[k] == '*' || s[k] == '/')
{
if (s[k] == '*')
{
k++;
x *= factor();
}
else
if (s[k] == '/')
{
k++;
x /= factor();
}
}
return x;
}
int factor()
{
long long x = 0;
if (s[k] == '(')
{
k++;
x = calc();
k++;
}
else
{
while (s[k] >= '0' && s[k] <= '9')
{
x = x * 10 + (s[k] - '0');
k++;
}
}
return x;
}
int main()
{
fin >> s;
fout << calc() << "\n";
return 0;
}