Pagini recente » Profil Axyon | Cod sursa (job #1403556) | Cod sursa (job #990189) | Cod sursa (job #136591) | Cod sursa (job #1512984)
#include <cstdio>
using namespace std;
char q[100010];
int dd;
int f1();
int f2();
int f3();
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
int n, i, j, s, t, d;
scanf("%s",q);
printf("%d",f3( ));
return 0;
}
int f3(){
int r = f2( );
while( q[dd] == '+' || q[dd] == '-' )
if( q[dd] == '+' ) dd++, r += f2( );
else dd++, r -= f2( );
return r;
}
int f2(){
int r = f1( );
while( q[dd] == '*' || q[dd] == '/' )
if( q[dd] == '*' ) dd++, r *= f1( );
else dd++, r /= f1( );
return r;
}
int f1(){
int r;
if( q[dd] == '(' ){
dd++;
r = f3( );
dd++;
return r;
}
r = 0;
while( q[dd] >= '0' && q[dd] <= '9' ){
r = r * 10 + ( q[dd] - '0' );
dd++;
}
return r;
}