Pagini recente » Cod sursa (job #2382006) | Cod sursa (job #2931916) | Cod sursa (job #794716) | Cod sursa (job #1114903) | Cod sursa (job #1678226)
#include <iostream>
using namespace std;
char r[100001];
char* s=r;
long long termen();
long long factor();
long long eval(){
long long r=termen();
while(s[0]=='+' || s[0]=='-'){
switch(s[0]){
case '+':
s++;
r+=termen();
break;
case '-':
s++;
r-=termen();
}
}
return r;
}
long long termen(){
long long r=factor();
while(s[0]=='*' || s[0]=='/'){
switch(s[0]){
case '*':
s++;
r*=factor();
break;
case '/':
s++;
r/=factor();
break;
}
}
return r;
}
long long factor(){
long long r=0;
if(s[0]=='('){
s++;
r=eval();
s++;
}else{
while(s[0]>='0' && s[0]<='9'){
r=r*10+s[0]-'0';
s++;
}
}
return r;
}
int main()
{
cin>>s;
cout<<eval();
return 0;
}