Pagini recente » Cod sursa (job #2399894) | Cod sursa (job #1020802) | Cod sursa (job #990536) | Cod sursa (job #930083) | Cod sursa (job #1638294)
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int i=0;
long long calc_expr();
long long calc_factor()
{
long long ans=0;
if(s[i]=='(')
{
++i;
ans=calc_expr();
++i;
}
else
{
while(s[i]>='0' && s[i]<='9')
{
ans=ans*10+(s[i]-'0');
++i;
}
}
return ans;
}
long long calc_term()
{
long long f1=calc_factor();
long long ans=f1;
while(s[i]=='*' || s[i]=='/')
{
if(s[i]=='*')
{
++i;
ans*=calc_factor();
}
if(s[i]=='/')
{
++i;
ans/=calc_factor();
}
}
return ans;
}
long long calc_expr()
{
long long t1=calc_term();
long long ans=t1;
while(s[i]=='+' || s[i]=='-')
{
if(s[i]=='+')
{
++i;
ans+=calc_term();
}
if(s[i]=='-')
{
++i;
ans-=calc_term();
}
}
return ans;
}
int main()
{
fin>>s;
fout<<calc_expr();
return 0;
}