Cod sursa(job #2717473)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 7 martie 2021 14:46:07
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
///grad1  +/-
/// grad2  */ /
/// grad3 () , 23423
int i;
int grad1(),grad2(),grad3();
char s[100005];
int grad1(){
    ///grad1=(grad2) + (grad2) - (grad2)
    int r=grad2();
    while(s[i]=='+'||s[i]=='-'){
        if(s[i]=='+'){
            i++;
            r+=grad2();
        }
        else if(s[i]=='-'){
            i++;
            r-=grad2();
        }
    }
    return r;
}
int grad2(){
    /// grad2= (grad3)/(grad3)*(grad3)
    int r=grad3();
    while(s[i]=='*'||s[i]=='/'){
        if(s[i]=='*'){
            i++;
            r*=grad3();
        }
        else if(s[i]=='/'){
            i++;
            r/=grad3();
        }
    }
    return r;
}
int grad3(){
    /// ( ...grad1 ...)  , nr
    int r=0;
    if(s[i]=='('){
        i++;
        r=grad1();
        i++;
        return r;
    }
    while(s[i]>='0'&&s[i]<='9'){
        r=r*10+s[i]-'0';
        i++;
    }
    return r;

}
int main(){
    fin>>s;
   // l=strlen(s);
    i=0;
    fout<<grad1();

}