Pagini recente » Cod sursa (job #2509993) | Cod sursa (job #1558562) | Cod sursa (job #839072) | Cod sursa (job #2376426) | Cod sursa (job #1163013)
#include <cstdio>
#define Nmax 100005
using namespace std;
char sir[Nmax];
int poz;
int Expr();
inline int Factor()
{
int sol;
if(sir[poz]=='(')
{
++poz;
return Expr();
}
else
{
for(sol=0;sir[poz]>='0' && sir[poz]<='9';sol=sol*10+sir[poz]-'0',++poz);
return sol;
}
}
inline int Termen()
{
int sol=Factor();
while(sir[poz]=='*' || sir[poz]=='/')
{
if(sir[poz++]=='*')
sol*=Factor();
else
sol/=Factor();
}
return sol;
}
inline int Expr()
{
int sol=Termen();
while(sir[poz]=='+' || sir[poz]=='-')
{
if(sir[poz++]=='+')
sol+=Termen();
else
sol-=Termen();
}
++poz;
return sol;
}
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
scanf("%s", sir);
printf("%d\n", Expr());
return 0;
}