Pagini recente » Cod sursa (job #2978757) | Cod sursa (job #2428636) | Cod sursa (job #3283521) | Cod sursa (job #3276449) | Cod sursa (job #2176831)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int i=0;
string s;
ll eval();
ll factor(){
ll r=0;
if(s[i]=='('){
i++;
r=eval();
i++;
}else while(s[i]>='0' && s[i]<='9'){
r*=10;
r+=s[i]-'0';
i++;
}
return r;
}
ll termen(){
ll r=factor();
while(s[i]=='*' || s[i]=='/'){
i++;
switch(s[i-1]){
case '*' : r*=factor(); break;
case '/' : r/=factor(); break;
}
}
return r;
}
ll eval(){
int r=termen();
while(s[i]=='+'|| s[i]=='-'){
i++;
switch(s[i-1]){
case '+' : r+=termen(); break;
case '-' : r-=termen();
}
}
return r;
}
int main(){
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f>>s;
g<<eval();
}