Pagini recente » Cod sursa (job #414796) | Cod sursa (job #2652033) | Cod sursa (job #871564) | Cod sursa (job #556865) | Cod sursa (job #3333924)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int i = 0;
char a[100001];
int factor();
int termen();
int expresie();
int numar();
int expresie(){
int ans = termen();
if(a[i] == '+'){
i++;
return(ans + termen());
}
if(a[i] == '-'){
i++;
return(ans - termen());
}
return(ans);
}
int termen(){
int ans = factor();
if(a[i] == '*'){
i++;
return(ans * factor());
}
if(a[i] == '/'){
i++;
return(ans / factor());
}
return ans;
}
int factor(){
int ans;
if(a[i] == '('){
i++;
ans = expresie();
i++;
}else{
ans = numar();
}
return ans;
}
int numar(){
int ans =0;
while(a[i] >= '0' && a[i] <= '9'){
ans = ans * 10 + a[i] - '0';
i++;
}
return ans;
}
int main(){
fin >> a;
int s = expresie();
fout << s;
}