Pagini recente » Cod sursa (job #1645554) | Simulare 31a | Cod sursa (job #554449) | Cod sursa (job #1552391) | Cod sursa (job #145340)
Cod sursa(job #145340)
#include<cstdio>
#define L 100010
long rez=0,i=0;
char s[L];
int elem();
int term();
int fact();
int elem(){
int r=0;
if(s[i]=='('){
i++;
r=term();
i++;
}
else
while(s[i]>='0' && s[i]<='9'){
r=r*10+(s[i]-'0');
i++;
}
return r;
}
int term(){
int r=fact();
while(s[i]=='+' || s[i]=='-')
if(s[i]=='+')
i++,r+=fact();
else
i++,r-=fact();
return r;
}
int fact(){
int r=elem();
while(s[i]=='*' || s[i]=='/')
if(s[i]=='*')
i++,r*=elem();
else
i++,r/=elem();
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
fgets(s,L,stdin);
rez=term();
printf("%ld",rez);
return 0;
}