Pagini recente » Cod sursa (job #412723) | Cod sursa (job #3147873) | Cod sursa (job #2399000) | Cod sursa (job #2349657) | Cod sursa (job #3278861)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 100000;
char s[NMAX+1], *p;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
long long gr3(); long long gr2(); long long gr1();
long long gr1()
{
int nr = 0;
if(*p == '(')
p++, nr = gr3(), p++;
else
while(isdigit(*p))
nr = nr*10 + (*p - '0'), p++;
return nr;
}
long long gr2()
{
int nr = gr1();
while(*p == '*' || *p == '/')
if(*p == '*')p++, nr*=gr1();
else if(*p == '/')p++, nr/=gr1();
return nr;
}
long long gr3()
{
int nr = gr2();
while(*p == '+' || *p == '-')
if(*p == '+')p++, nr+=gr2();
else if(*p == '-') p++, nr-=gr2();
return nr;
}
int main()
{
fin >> s;
p = s;
fout << gr3();
return 0;
}