Cod sursa(job #3240843)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 21 august 2024 16:46:18
Problema Evaluarea unei expresii Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
using namespace std;
ifstream  fin("evaluare.in");
ofstream fout("evaluare.out");
char e[100009],*p=e;
long long Factor();
long long Termen();
long long Expresie();

long long Factor()
{
    long long r=0;

    while(*p>='0' && *p<='9')
    {
        r=r*10+*p-'0';
        p++;
    }

    return r;
}

long long Termen()
{
    long long r=Factor();
    while(*p=='*' || *p=='/')
    {
        if(*p=='*')
        {
            p++;
            r*=Factor();
        }
        else
        {
            p++;
            r/=Factor();
        }
    }

    return r;
}

long long Expresie()
{
    long long r=Termen();

    while(*p=='+' || *p=='-')
    {
        if(*p=='+')
        {
            p++;
            r+=Termen();
        }
        else
        {
            p++;
            r-=Termen();
        }
    }

    return r;
}


int main()
{
    fin.get(e,100009);

    fout<< Expresie();

    return 0;
}