Pagini recente » Cod sursa (job #1192160) | Cod sursa (job #3151401) | Cod sursa (job #910123) | Cod sursa (job #1964408) | Cod sursa (job #2142782)
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
char e[100005];
char *p=e;
long long int factor();
long long int operatie();
long long int termen()
{
long long int nr=0;
if(*p=='(')
{
p++;
nr=operatie();
p++;
}
else
{
while(isdigit(*p))
{
nr=nr*10+(*p-'0');
p++;
}
}
return nr;
}
long long int factor()
{
long long int nr1;
nr1=termen();
while(*p=='/' || *p=='*')
{
if(*p=='*')
{
p++;
nr1*=factor();
}
else
{
p++;
nr1/=factor();
}
}
return nr1;
}
long long int operatie()
{
long long int t1;
t1=factor();
while(*p=='+' || *p=='-')
{
if(*p=='+')
{
p++;
t1+=factor();
}
else
{
p++;
t1-=factor();
}
}
return t1;
}
int main()
{
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
cin.get(e,100005);
cout<<operatie();
return 0;
}