Pagini recente » Cod sursa (job #1210833) | Cod sursa (job #1175304) | Cod sursa (job #1842641) | Cod sursa (job #2722944) | Cod sursa (job #3261435)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
const int NMAX = 100000;
char s[NMAX+1], *p;
int numar(); int expresie(); int eval();
int numar()
{
int x = 0;
if(*p == '(')
p++, x = eval(), p++;
else
while(isdigit(*p))
x = x*10 + (*p - '0'), p++;
return x;
}
int expresie()
{
int nr = numar();
while(*p == '*' || *p == '/')
{
if(*p == '*')p++, nr*=numar();
else if(*p == '/')p++, nr/=numar();
}
return nr;
}
int eval()
{
int exp = expresie();
while(*p == '+' || *p == '-')
{
if(*p == '-')p++, exp-=expresie();
else if(*p == '+')p++, exp+=expresie();
}
return exp;
}
signed main()
{
fin >> s;
p = s;
int ans = eval();
fout << ans;
return 0;
}