Pagini recente » Cod sursa (job #889029) | Cod sursa (job #1157904) | Cod sursa (job #2405778) | Cod sursa (job #2490248) | Cod sursa (job #896601)
Cod sursa(job #896601)
#include <cstdio>
using namespace std;
char v[100001];
int k=0;
int termen();
int factor();
int evaluare()
{
int exp=termen();
while(v[k]=='+'||v[k]=='-')
{
k++;
if (v[k-1]=='+')exp+=termen();
else exp-=termen();
}
return exp;
}
int termen()
{
int exp=factor();
while(v[k]=='*'||v[k]=='/')
{
k++;
if(v[k-1]=='*')exp*=factor();
else exp/=factor();
}
return exp;
}
int factor()
{
int exp=0;
if(v[k]=='(')
{
k++;
exp=evaluare();
k++;
}
while('0'<=v[k]&&'9'>=v[k])
{
exp=exp*10+v[k]-'0';
k++;
}
return exp;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",v);
printf("%d",evaluare());
return 0;
}