Pagini recente » Cod sursa (job #2233051) | Cod sursa (job #2628496) | Cod sursa (job #1890721) | Cod sursa (job #588441) | Cod sursa (job #1678230)
#include <iostream>
#include <fstream>
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()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f>>s;
g<<eval();
return 0;
}