Cod sursa(job #1324292)

Utilizator kfcroolsPaun Bogdan kfcrools Data 22 ianuarie 2015 07:58:03
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include <fstream>
using namespace std;

char s[100002];
int i;



int factor();
int termen();
int expresie();



int main(){
    ifstream fin ("evaluare.in");
    ofstream fout ("evaluare.out");
    fin>>s;
    i=0;
    fout<<expresie();
    return 0;
}




int factor(){
    int r;
        if (s[i]=='('){
            i++;
            r=expresie();
            i++;
        }
        else{
            r=0;
            while(s[i]>='0'&&s[i]<='9'){
                r=r*10+s[i]-'0';
                i++;
            }
        }
        return r;
}

int termen(){
    int r=factor();
    while (s[i]=='+'||s[i]=='-'){
        if (s[i]=='+'){
            i++;
            r*=factor();
        }
        else{
            i++;
            r/=factor();
        }
    }
    return r;
}





int expresie(){
    int r=termen();
    while (s[i]=='+'||s[i]=='-'){
        if (s[i]=='+'){
            i++;
            r+=termen();
        }
        else{
            i++;
            r-=termen();
        }
    }
    return r;

}