Pagini recente » Cod sursa (job #583493) | Rating Florin Cioroianu (FlorinCioroianu) | Cod sursa (job #3166488) | Cod sursa (job #288408) | Cod sursa (job #901156)
Cod sursa(job #901156)
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 100010
using namespace std;
char s[maxn], *p=s;
int grad1();
int grad2();
int numar();
int grad1()
{
int r=grad2();
while(*p == '+' || *p =='-' )
if(*p == '+')
++p,r += grad2();
else
++p,r -= grad2();
return r;
}
int grad2()
{
int r=numar();
while(*p == '*' || *p =='/')
if(*p == '*')
++p,r *= numar();
else
++p,r /= numar();
return r;
}
int numar()
{
int r=0;
if(*p == '(')
++p,r = grad1(),++p;
else
while(*p>='0' && *p<='9')
r = r*10 + *p - '0', ++p;
return r;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%d\n",grad1());
return 0;
}