Pagini recente » Cod sursa (job #175023) | Cod sursa (job #2774150) | Cod sursa (job #695074) | Cod sursa (job #155205) | Cod sursa (job #702416)
Cod sursa(job #702416)
#include <cstdio>
#define LL long long
using namespace std;
char s[100001],*p=s;
LL Evaluare();
LL Factor();
LL Termen();
int main() {
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",s);
printf("%d",Evaluare());
return 0;
}
LL Evaluare() {
LL ANS=Termen();char c;
while (*p=='+' || *p=='-') {
c=*p;p++;
if (c=='+') ANS+=Termen();
else ANS-=Termen();
}
return ANS;
}
LL Termen() {
LL ANS=Factor();char c;
while (*p=='*' || *p=='/') {
c=*p;p++;
if (c=='*') ANS*=Factor();
else ANS/=Factor();
}
return ANS;
}
LL Factor() {
LL ANS=0;
if (*p=='(') {
++p;
ANS=Evaluare();
++p;
return ANS;
}
while (*p>='0' && *p<='9') {
ANS=ANS*10+*p-'0';
++p;
}
return ANS;
}