Pagini recente » redsnow_3 | Cod sursa (job #1920156) | Cod sursa (job #240178) | Cod sursa (job #1888053) | Cod sursa (job #2279810)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
//Evaluare de expresii fara paranteze
ll n ;
char s[52] , *p;
ll eval();
ll termen();
ll factor();
ll eval()
{
ll r = termen();
while (*p == '+' || *p == '-')
{
if (*p == '+')
{
p ++ ;
r += termen();}
if (*p == '-')
{
p ++ ;
r -= termen();
}
}
return r ;
}
ll termen()
{
ll r = factor() ;
while (*p == '*' || *p == '/')
{
if (*p == '*')
{
p ++ ;
r *= factor();
}
if (*p == '/')
{
p ++ ;
r /= factor() ;
}
}
return r;
}
ll factor()
{
ll r = 0 ;
if (*p == '(')
{
p ++ ;
r = eval();
p ++ ;
}
while (isdigit(*p))
{
r = r * 10 + (*p - '0');
p ++ ;
}
return r;
}
int main()
{
cin >> s;
p = s ;
cout << eval();
return 0 ;
}