Mai intai trebuie sa te autentifici.
Cod sursa(job #301743)
Utilizator | Data | 8 aprilie 2009 13:41:50 | |
---|---|---|---|
Problema | Evaluarea unei expresii | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include<stdio.h>
char ch[100010],*p=ch;
long long add(void);
long long multi(void);
long long nr(void);
long long add(){
long long r=multi();
while(*p=='+'||*p=='-')
if(*p=='+'){p++;r+=add();}
else
if(*p=='-'){p++;r-=add();}
return r;
}
long long multi(){
long long r=nr();
while(*p=='*'||*p=='/')
if(*p=='*'){p++;r*=nr();}
else
if(*p=='/'){p++;r/=nr();}
return r;
}
long long nr(){
long long r=0;
if(*p=='(')
{p++;r=add();p++;}
else
while(*p>='0'&&*p<='9')
{r=(r*10)+(*p-'0');p++;}
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",ch);
printf("%lld",add());
return 0;}