Cod sursa(job #1733366)

Utilizator Kln1000Ciobanu Bogdan Kln1000 Data 24 iulie 2016 15:54:57
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

ifstream f ("evaluare.in");
ofstream t ("evaluare.out");

string exp;
int i;

int q();

int qqq()
{
    int x=0;
    if(exp[i]=='(')
    {
        ++i;
        x=q();
        ++i;
        return x;
    }
    while(exp[i]>=48 and exp[i]<=57)
        x=x*10+exp[i]-'0',++i;
    return x;
}

int qq()
{
    int x=qqq();
    while(exp[i]=='*' or exp[i]=='/')
    {
        if(exp[i]=='*') ++i,x*=qqq();
        else ++i,x/=qqq();
    }
    return x;
}

int q()
{
    int x=qq();
    while(exp[i]=='+' or exp[i]=='-')
    {
        if(exp[i]=='+') ++i,x+=qq();
        else ++i,x-=qq();
    }
    return x;
}

inline void citire(){
f>>exp;
exp+=')';}

inline void parsing(){long s;
s=q();
t<<s;}

int main()
{citire();
parsing();
return 0;
}