Cod sursa(job #1510793)

Utilizator mihaidanielmihai daniel mihaidaniel Data 25 octombrie 2015 16:55:33
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>
using namespace std;
char s[100000];
int index;
int trei();

int unu(){
    if( s[index]=='(' ){
        ++index;
        int r=trei();
        ++index;
        return r;
    }
    int nr=0;
    while( s[index]>='0' && s[index]<='9' )nr=nr*10+s[index++]-'0';
    return nr;
}

int doi(){
    int r=unu();
    while( s[index]=='*' || s[index]=='/' )
        if( s[index++]=='*' )
            r*=unu();
        else r/=unu();
    return r;
}

int trei(){
    int r=doi();
    while( s[index]=='+' || s[index]=='-' )
        if( s[index++]=='+' )
            r+=doi();
        else r-=doi();
    return r;
}

int main(){
    freopen( "evaluare.in", "r", stdin );
    freopen( "evaluare.out", "w", stdout );
    scanf( "%s", s );
    printf( "%d", trei() );
return 0;
}