Cod sursa(job #3266129)

Utilizator Mate_Info_is_my_life.Musuroi Matei Gabriel Mate_Info_is_my_life. Data 5 ianuarie 2025 20:14:24
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;

ifstream fin("evaluare.in");
ofstream fout("evaluare.out");

int k;
string s;

int semn();
int factor();

int calc()
{
	int x = semn();
	while (s[k] == '-' || s[k] == '+')
	{
		if (s[k] == '-')
		{
			k++;
			x -= semn();
		}
		else
		if (s[k] == '+')
		{
			k++;
			x += semn();
		}
	}
	return x;
}

int semn()
{
	int x = factor();
	while (s[k] == '*' || s[k] == '/')
	{
		if (s[k] == '*')
		{
			k++;
			x *= factor();
		}
		else
		if (s[k] == '/')
		{
			k++;
			x /= factor();
		}
	}
	return x;
}

int factor()
{
	long long x = 0;
	if (s[k] == '(')
	{
		k++;
		x = calc();
		k++;
	}
	else
	{
		while (s[k] >= '0' && s[k] <= '9')
		{
			x = x * 10 + (s[k] - '0');
			k++;
		}
	}
	return x;
}

int main()
{
	fin >> s;
	fout << calc() << "\n";
	return 0;
}