Pagini recente » Cod sursa (job #2508775) | Cod sursa (job #1176761) | Cod sursa (job #91895) | Cod sursa (job #3004925) | Cod sursa (job #2757992)
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
char s[100001];
int poz=0;
#define ll long long
ll termen();
ll eval();
ll factor();
ll eval()
{
ll rez=termen();
if(s[poz]=='+' || s[poz]=='-')
{
if(s[poz]=='+'){
poz++;
rez+=termen();
}
if(s[poz]=='-'){
poz++;
rez-=termen();
}
}
return rez;
}
ll termen()
{
ll rez=factor();
while(s[poz]=='/' || s[poz]=='*')
{
if(s[poz]=='*'){
poz++;
rez*=termen();
}
if(s[poz]=='/'){
poz++;
rez/=termen();
}
}
return rez;
}
ll factor()
{
ll rez=0;
if(s[poz]=='(')
{
poz++;
rez=eval();
poz++;
}
else
{
while(s[poz]>='0' && s[poz]<='9')
{
rez=rez*10+s[poz]-'0';
poz++;
}
}
return rez;
}
int main()
{
cin>>s;
cout<<eval();
return 0;
}