Pagini recente » Cod sursa (job #2765180) | Cod sursa (job #1781632) | Cod sursa (job #3202959) | Cod sursa (job #2988261) | Cod sursa (job #2115738)
#include <iostream>
#include <fstream>
#define N 100010
char a[N];
int n, i=0;
long long termen();
long long factor();
long long expresie()
{
long long r=termen();
while (a[i]=='+' || a[i]=='-')
{
if (a[i]=='+')
{
i++;
r+=termen();
}
else
{
i++;
r-=termen();
}
}
return r;
}
long long termen()
{
long long r=factor();
while (a[i]=='*' || a[i]=='/')
{
if (a[i]=='*')
{
i++;
r*=factor();
}
else
{
i++;
r/=factor();
}
}
return r;
}
long long factor()
{
long long r=0;
if (a[i]=='(')
{
i++;
r=expresie();
i++;
}
else
{
while (a[i]>='0' && a[i]<='9')
{
r=r*10+(a[i]-48);
i++;
}
}
return r;
}
using namespace std;
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin.getline(a, N);
fout << expresie();
return 0;
}