Cod sursa(job #3209177)

Utilizator staicumateiStaicu Matei Octavian staicumatei Data 2 martie 2024 10:01:07
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <bits/stdc++.h>

using namespace std;

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

char *p,s[100002];
int expresie();
int termen();
int factor();

int expresie()
{
    int rez=termen();
    while ( *p=='+' || *p=='-' )
    {
        if ( *p=='+' )
        {
            p++;
            rez+=termen();
        }
        else
        {
            p++;
            rez-=termen();
        }
    }
    return rez;
}
int termen()
{
    int rez=factor();
    while( *p=='*' || *p=='/' )
    {
        if( *p=='*' )
        {
            p++;
            rez*=factor();
        }
        else
        {
            p++;
            rez/=factor();
        }
    }
    return rez;
}
int factor()
{
    int rez=0;
    if ( *p=='(' )
    {
        p++;
        rez=expresie();
        p++;
    }
    else
    {
        while ( *p<='9' && *p>='0' )
        {
            rez=rez*10+*p-'0';
            p++;
        }
    }
    return rez;
}
int main()
{
    f.getline(s,1000005);
    p=s;
    g<<expresie();
    return 0;
}