Cod sursa(job #3218189)

Utilizator andreigspdAndrei Gospodaru andreigspd Data 26 martie 2024 13:02:20
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int n,m,i,expresie(),factor(),termen();
char s[100010];
int expresie(){
 int r=termen();
 while(s[i]=='+'||s[i]=='-'){
    if(s[i]=='+'){
        i++;
        r+=termen();
    }
    else{
        i++;
        r-=termen();
    }
 }
 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 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 main(){
 fin>>s;
 i=0;
 fout<<expresie();
}