Pagini recente » Cod sursa (job #1727534) | Cod sursa (job #3037989) | Cod sursa (job #591759) | Cod sursa (job #1450060) | Cod sursa (job #2862217)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int contor;
char s[100002];
long long expresie();
long long produs();
long long suma();
long long expresie()
{
if(isdigit(s[contor]))
{
long long nr = 0;
while(isdigit(s[contor]))
{
nr = nr * 10 + (s[contor] - '0');
contor++;
}
return nr;
}
else if(s[contor] == '(')
{
contor++;
//o iau de la capat
long long x = suma();
contor++;
return x;
}
}
long long produs()
{
long long temp = expresie();
while(s[contor] == '*' || s[contor] == '/')
{
if(s[contor] == '*')
{
contor++;
temp *= expresie();
}
else if(s[contor] == '/')
{
contor++;
temp /= expresie();
}
}
return temp;
}
long long suma()
{
int temp = produs();
while(s[contor] == '+' || s[contor] == '-')
{
if(s[contor] == '+')
{
contor++;
temp += produs();
}
else if(s[contor] == '-')
{
contor++;
temp -= produs();
}
}
return temp;
}
int main()
{
int n,i,j,k;
fin.getline(s, 100002);
fout<<suma();
return 0;
}