Pagini recente » Cod sursa (job #1528443) | Cod sursa (job #240147) | Cod sursa (job #2247692) | Cod sursa (job #1503085) | Cod sursa (job #3346601)
#include <bits/stdc++.h>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
string s;
int i=0;
long long termen();
long long expresie();
long long factor();
long long constanta();
long long expresie() {
long long r=0;
r=termen();
while (s[i]=='+' || s[i]=='-') {
if (s[i]=='+') {
i++;
r+=termen();
}
else {
i++;
r-=termen();
}
}
return r;
}
long long termen() {
long long r=0;
r=factor();
while (s[i]=='*' || s[i]=='/') {
if (s[i]=='*') {
i++;
r*=factor();
}
else {
i++;
r/=factor();
}
}
return r;
}
long long factor() {
long long r=0;
if (s[i]=='(') {
i++;
r+=expresie();
i++;
}
else {
r+=constanta();
}
return r;
}
long long constanta() {
long long r=0;
while (s[i]-'0'<10 && s[i]-'0'>=0) {
r=r*10+s[i]-'0';
i++;
}
return r;
}
int main(){
in>>s;
out<<expresie();
return 0;
}