Cod sursa(job #2059350)

Utilizator HumikoPostu Alexandru Humiko Data 6 noiembrie 2017 21:38:24
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("evaluare.in");
ofstream fout("evaluare.out");

int parnr();
int grad1();
int grad2();

char v[100001];
int i;

int parnr()
{
    int ans = 0;
    if ( v[i] == '(' )
    {
        ++i;
        ans = grad1();
        ++i;
    }
    else
        while ( v[i] <= '9' && v[i] >= '0' )
            ans = ans*10+(v[i++]-'0');
    return ans;
}

int grad2()
{
    int ans = parnr();
    if (v[i] == '*')
    {
        ++i;
        ans *= parnr();
    }
    if ( v[i] == '/' )
    {
        ++i;
        ans /= parnr();
    }
    return ans;
}

int grad1()
{
    int ans = grad2();
    if ( v[i] == '+' )
    {
        ++i;
        ans += grad2();
    }
    if ( v[i] == '-' )
    {
        ++i;
        ans -= grad2();
    }
    return ans;
}

int main()
{
    fin>>v;
    fout<<grad1();
}