Pagini recente » Cod sursa (job #193383) | Cod sursa (job #1393556) | Cod sursa (job #1097550) | Cod sursa (job #2111556) | Cod sursa (job #1247444)
#include <fstream>
#include <string>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int solve();
string s;
string::iterator it;
int factor( ) {
int res= 0;
if ( *it=='(' ) ++it, res= solve(), ++it;
else {
for ( ; *it>='0' && *it<='9'; ++it ) {
res= res*10+*it-'0';
}
}
return res;
}
int termen( ) {
int res= factor();
while ( *it=='*' || *it=='/' ) {
if ( *it=='*' ) ++it, res*= factor();
else ++it, res/= factor();
}
return res;
}
int solve( ) {
int res= termen();
for ( ; *it=='+' || *it=='-'; ) {
if ( *it=='+' ) ++it, res+= termen();
else ++it, res-= termen();
}
return res;
}
int main( ) {
fin>>s;
it= s.begin();
fout<<solve()<<"\n";
return 0;
}