Cod sursa(job #2327047)

Utilizator foroji2019De ce sa ma inregistrez foroji2019 Data 24 ianuarie 2019 12:57:13
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
long long i=0; char a[100003];
int termen();
int factor();

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

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

int factor(){ int p=0;
if(a[i]=='('){i++; p=expresie(); i++;}
else if(isdigit(a[i]))
    {while(isdigit(a[i])){p=p*10+(a[i]-'0'); i++;}}
return p;
}

int main()
{
    fin.get(a,100001);
    long long u=expresie();
    fout<<u;
    return 0;
}