Cod sursa(job #2858582)

Utilizator dcovDarius Covaciu dcov Data 27 februarie 2022 21:52:37
Problema Evaluarea unei expresii Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;

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

char s[100010];
int i=0;

int num();
int ord1();
int ord2();

int ord1()
{
    int rez=ord2();

    if(s[i]=='+')
    {
        i++;
        rez+=ord2();
    }
    else if(s[i]=='-')
    {
        i++;
        rez-=ord2();
    }

    return rez;
}

int ord2()
{
    int rez=num();

    if(s[i]=='*')
    {
        i++;
        rez*=num();
    }
    else if(s[i]=='/')
    {
        i++;
        rez/=num();
    }

    return rez;
}

int num()
{
    int rez=0;

    if(s[i]=='(')
    {
        i++;
        rez=ord1();
        i++;
    }
    else
    {
        while(s[i]>='0' && s[i]<='9')
        {
            rez=rez*10+(s[i]-'0');
            i++;
        }
    }

    return rez;
}

int main()
{
    f.getline(s,100010);

    g<<ord1();

    return 0;
}