Pagini recente » Cod sursa (job #1271363) | Cod sursa (job #2719784) | Cod sursa (job #610636) | Cod sursa (job #1138742) | Cod sursa (job #3193333)
#include <bits/stdc++.h>
#include <cctype>
#define inf 1000000000
using namespace std;
ifstream fin("test.in");
ofstream fout("test.out");
char s[100001];
int pos;
int add();
int mult();
int factor();
int add()
{
int r = mult();
while (s[pos] == '+' || s[pos] == '-')
{
if(s[pos] == '+')
{
pos++;
r += mult();
}
else
{
pos++;
r += mult();
}
}
return r;
}
int mult()
{
int r = factor();
while(s[pos] == '*' || s[pos] == '/')
{
if(s[pos] == '*')
{
pos++;
r *= factor();
}
else
{
pos++;
r /= factor();
}
}
return r;
}
int factor()
{
int r = 0;
if(s[pos] == '(')
{
pos++;
r += add();
pos++;
}
else
{
while(isdigit(s[pos]))
{
r = r * 10 + (s[pos] - '0');
pos++;
}
}
return r;
}
int main()
{
cin.getline(s,100001);
pos = 0;
cout << add();
}