Pagini recente » Cod sursa (job #859689) | Cod sursa (job #25689) | Cod sursa (job #722126) | Cod sursa (job #142039) | Cod sursa (job #711951)
Cod sursa(job #711951)
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
char s[100010];
int i=0;
int exp();
int termen();
int factor()
{
int k=0;
if (s[i]=='(')
{
i++;
k=exp();
i++;
}
else
{ k=0;
while (i<strlen(s) && s[i]>='0' && s[i]<='9') {k=k*10+(s[i]-'0') ;i++;}
}
return k;
}
int termen()
{
int k=factor();
while(s[i]=='*' || s[i]=='/')
{
if(s[i]=='*') {
i++;
k=k*factor();
}
else
{
i++;
k=k/factor();
}
}
return k;
}
int exp()
{
int k=termen();
while( s[i]=='+' || s[i]=='-')
if (s[i]=='+')
{i++;
k=k+termen();
}
else
{
i++;
k=k-termen();
}
return k;
}
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
scanf("%s",s);
printf("%d",exp());
return 0;
}