Pagini recente » Cod sursa (job #1394616) | Cod sursa (job #301055) | Cod sursa (job #699235) | Cod sursa (job #965204) | Cod sursa (job #1904535)
#include<stdio.h>
using namespace std;
char s[100002], *p=s;
long long termen();
long long factor();
long long eval(){
long long r=termen();
while(*p=='+'||*p=='-'){
switch(*p){
case '+':
++p;
r+=termen();
break;
case '-':
++p;
r-=termen();
break;
}
}
return r;
}
long long termen(){
long long r=factor();
while(*p=='*'||*p=='/'){
switch(*p){
case '*':
++p;
r*=factor();
break;
case '/':
++p;
r/=factor();
break;
}
}
return r;
}
long long factor(){
long long r=0;
if(*p=='('){
++p;
r=eval();
++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",&s);
printf("%I64d",eval());
return 0;
}