Pagini recente » Cod sursa (job #63399) | Profil UNIBUC-Belu-Palcuie-Cucu | Cod sursa (job #156973) | Cod sursa (job #296749) | Cod sursa (job #1907724)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout ("evaluare.out");
char *sir=new char[100002];
long long int termen();
long long int factor();
long long int eval(){
long long r=termen();
while(*sir=='+' || *sir =='-'){
switch(*sir){
case '+':
sir++;
r+=termen();
break;
case '-':
sir++;
r-=termen();
break;
}
}
return r;
}
long long int termen(){
long long r=factor();
while(*sir=='*' || *sir =='/'){
switch(*sir){
case '*':
sir++;
r*=factor();
break;
case '/':
sir++;
r/=factor();
break;
}
}
return r;
}
long long int factor(){
long long r=0;
if(*sir=='('){
sir++;
r=eval();
sir++;
}
else {
while(*sir>='0' && *sir<='9')
r=r*10+*(sir++)-'0';
}
return r;
}
int main()
{
fin.get(sir,100002);
fout<<eval();
return 0;
}