Pagini recente » Cod sursa (job #1543805) | Cod sursa (job #179921) | Cod sursa (job #1337852) | Cod sursa (job #1937403) | Cod sursa (job #3002714)
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string s;
int i;
long expresie();
long termen();
long factor();
long expresie()
{
long r;
r = termen();
while (s[i] == '+' || s[i] == '-')
if (s[i] == '+') {
i ++;
r += termen();
} else {
i ++;
r -= termen();
}
return r;
}
long termen()
{
long r;
r = factor();
while (s[i] == '*' || s[i] == '/')
if (s[i] == '*') {
i ++;
r *= factor();
} else {
i ++;
r /= factor();
}
return r;
}
long factor()
{
long r = 0;
if (s[i] == '(')
{
i ++;
r += expresie();
i ++;
}
else {
while (s[i] >= '0' && s[i] <= '9')
{
r = r * 10 + (s[i] - '0');
i ++;
}
}
return r;
}
int main()
{
cin >> s;
i = 0;
cout << expresie();
return 0;
}