Pagini recente » Cod sursa (job #145494) | Cod sursa (job #1750115) | Cod sursa (job #1037713) | Cod sursa (job #2743673) | Cod sursa (job #2356761)
#include <fstream>
#define ll long long
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char expr[100001], c;
void nextc() { c = f.get(); };
ll exp1();
ll exp2();
ll exp3();
ll exp1() // +, -
{
ll val = exp2();
while (c == '+' || c == '-')
{
if (c == '+')
nextc(),
val += exp2();
else
nextc(),
val -= exp2();
}
return val;
}
ll exp2()// *, /
{
ll val = exp3();
while (c == '*' || c == '/')
{
if (c == '*')
nextc(),
val *= exp3();
else
nextc(),
val /= exp3();
}
return val;
}
ll exp3() // (, nr
{
ll val = 0;
if (c == '(')
{
nextc();
val = exp1();
nextc();
}
else while (c >= '0' && c <= '9')
{
val = val * 10 + (c - '0');
nextc();
}
return val;
}
int main()
{
nextc();
g << exp1();
return 0;
}