Pagini recente » Cod sursa (job #2565868) | Cod sursa (job #1139543) | Cod sursa (job #67877) | Cod sursa (job #888019) | Cod sursa (job #2024774)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("expresii.in");
ofstream fout("expresii.out");
char sir[100001], *p = sir;
long term();
long fact();
long eval()
{
long r = term();
while ( *p == '+' || *p == '-') {
if(*p == '+') p++, r += term();
else p++, r -= term();
}
return r;
}
long term()
{
long r = fact();
while (*p == '*' || *p == '/') {
if (*p == '*') p++, r *= fact();
else p++, r /= fact();
}
return r;
}
long fact()
{
long r = 0;
if ( *p == '(') {
p++;
r = eval();
p++;
}
else {
while ( *p >= '0' && *p <= '9') {
r = r * 10 + *p - '0';
p++;
}
}
return r;
}
int main()
{
fin.getline(sir,100001);
fout << eval();
return 0;
}