Cod sursa(job #964077)

Utilizator Luncasu_VictorVictor Luncasu Luncasu_Victor Data 20 iunie 2013 00:40:00
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");

char ee[100013], *it;

int sol();

int num(){
	int nr = 0;
	if(*it=='('){it++; nr=sol(); it++;} else {
		while(*it>='0'&&*it<='9'){
			nr=nr*10+*it-'0';
			it++;
		}
	}
	return nr;
}

int fct(){
	int pro = num();
	while(*it=='*'||*it=='/'){
		if(*it=='*'){it++; pro*=num();}
		if(*it=='/'){it++; pro/=num();}
	}
	return pro;
}

int sol(){
	int sum = fct();
	while(*it=='+'||*it=='-'){
		if(*it=='+'){it++; sum+=fct();}
		if(*it=='-'){it++; sum-=fct();}
	}
	return sum;
}

int main(){
	f >> ee;
	it=ee;
	g << sol();
	return 0;
}