Cod sursa(job #3286939)

Utilizator Floroiu_MariusFloroiu Marius Cristian Floroiu_Marius Data 14 martie 2025 20:33:46
Problema Evaluarea unei expresii Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int i;
int grad1();
int grad2();
int grad3();
int grad1()
{
    int rez=grad2();
    while (s[i]=='+' || s[i]=='-')
    {
        i++;
        if (s[i-1]=='+') rez+=grad2();
        else rez-=grad2();
    }
    return rez;
}
int grad2()
{
    int rez=grad3();
    while (s[i]=='*' || s[i]=='/')
    {
        i++;
        if (s[i-1]=='*') rez*=grad2();
        else rez/=grad2();
    }
    return rez;
}
int grad3()
{
    int rez;
    if (s[i]=='(')
    {
        i++;
        rez=grad1();
        i++;
    }
    else
    {
        rez=0;
        while (i<s.size() && isdigit(s[i])) rez=rez*10+(s[i]-'0'),i++;
    }
    return rez;
}
int main()
{
    fin>>s;
    fout<<grad1();
    return 0;
}