Pagini recente » Cod sursa (job #2544294) | Cod sursa (job #1007696) | Cod sursa (job #482060) | Cod sursa (job #264613) | Cod sursa (job #2720490)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int idx = 0;
string s;
int suma();
int produs();
int termen();
int suma()
{ int ans = produs();
while(s[idx] == '+' || s[idx] == '-')
{ if(s[idx] == '+')
{ idx++;
ans = ans + produs();
}
else
{ idx++;
ans = ans - produs();
}
}
return ans;
}
int produs()
{ int ans = termen();
while(s[idx] == '*' || s[idx] == '/')
{ if(s[idx] == '*')
{ idx++;
ans = ans * termen();
}
else
{ idx++;
ans = ans / termen();
}
}
return ans;
}
int termen()
{ int ans = 0;
if(s[idx] == '(')
{ idx++;
ans = suma();
idx++;
}
else
{ while(s[idx] >= '0' && s[idx] <= '9')
{ ans = ans * 10 + s[idx] - '0';
idx++;
}
}
return ans;
}
int main()
{
fin >> s;
fout << suma() << '\n';
return 0;
}