Cod sursa(job #3355640)

Utilizator Maryy_1369Gociu Maria Anastasia Maryy_1369 Data 24 mai 2026 13:21:39
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <fstream>
#include<algorithm>
#include<cmath>
#include<string>
using namespace std;

ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string s;
int i=0;  // indicile nostru

int ev();

int fact(){    // aflam nr
   int rez=0;
   if(s[i]=='('){
        i++;
        rez=ev();
        i++;
        return rez;
   }
   while(i<s.size() && s[i]>='0' && s[i]<='9'){
      rez=rez*10+s[i]-'0';
      i++;
   }
   return rez;
}


int ter(){
    int rez=fact();
    while(i<s.size() && (s[i]=='*' || s[i]=='/')){
         if(s[i]=='*'){
              i++;
              rez*=fact();
         }
         else{
             i++;
             rez/=fact();
         }
    }
    return rez;
}
int ev(){
     int rez=ter();
     while(i<s.size() && (s[i]=='+' || s[i]=='-')){
          if(s[i]=='+'){
               i++;
                   rez+=ter();
          }
          else {
             i++;
             rez-=ter();
          }
     }
     return rez;
}
int main(){
    cin>>s;
    cout<<ev();
}