Pagini recente » Cod sursa (job #2236720) | Cod sursa (job #1544759) | Cod sursa (job #1238852) | Cod sursa (job #232664) | Cod sursa (job #2875748)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char str[100005];
int i = 0;
long long paranteze();
long long adunari()
{ long long calcul = 0;
if(str[i] == '(')
{
++i;
calcul = paranteze();
++i;
}
else
{ while(str[i] >= '0' && str[i] <= '9')
{calcul = calcul * 10 + (str[i] - '0');
++i;
}
}
return calcul;
}
long long inmultire()
{
long long calcul = adunari();
while(str[i] == '/' || str[i] == '*')
{ ++i;
if(str[i-1] == '/')
{
calcul /= adunari();
}
else{
calcul *= adunari();
}
}
return calcul;
}
long long paranteze()
{ long long calcul = inmultire();
while(str[i] == '-' || str[i] == '+')
{ ++i;
if(str[i-1] == '-')
{
calcul -= inmultire();
}
else{
calcul += inmultire();
}
}
return calcul;
}
int main()
{
fin>>str;
fout<<paranteze();
return 0;
}