Pagini recente » Cod sursa (job #1757360) | Cod sursa (job #1438981) | Cod sursa (job #2344829) | Cod sursa (job #1885163) | Cod sursa (job #3174071)
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define MOD 9001
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100001];
int sindex=0;
bool isnum(char x)
{
return '0' <= x && x<='9';
}
int adunare();
int factor()
{
int res=0;
if(s[sindex]=='(')
{
++sindex;
res=adunare();
++sindex;
}
else
{
while(isnum(s[sindex]))
{
res = res * 10 + s[sindex]-'0';
sindex++;
}
}
return res;
}
int inmultire()
{
int res= factor();
while(s[sindex]=='*' || s[sindex]=='/')
{
if(s[sindex++]=='*')
{
res *= factor();
}
else
{
res/=factor();
}
}
return res;
}
int adunare()
{
int res=inmultire();
while(s[sindex] == '+' || s[sindex] =='-')
{
if(s[sindex++]=='+')
{
res += inmultire();
}
else
{
res -= inmultire();
}
}
return res;
}
int main()
{
fin >> s;
fout << adunare();
}