Pagini recente » Cod sursa (job #801142) | Cod sursa (job #1827307) | Cod sursa (job #3221155) | Cod sursa (job #1678060) | Cod sursa (job #2619533)
//
// main.cpp
// C++ - teste
//
// Created by Filip Cuciuc on 03/02/2020.
// Copyright © 2020 Filip Cuciuc. All rights reserved.
//
//#include <iostream>
#include <stdio.h>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#include <math.h>
#include <map>
#include <string>
#include <cctype>
//#include "MED.h"
using namespace std;
//using namespace std::chrono;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int i;
string s;
int op1();
int op2();
int op3();
int op1() {
int ans = op2();
while(s[i] == '+' || s[i] == '-') {
if(s[i] == '+') {
i++;
ans += op2();
} if(s[i] == '-'){
i++;
ans -= op2();
}
}
return ans;
}
int op2() {
int ans = op3();
while(s[i] == '/' || s[i] == '*') {
if(s[i] == '/') {
i++;
ans /= op2();
} if(s[i] == '*'){
i++;
ans *= op2();
}
}
return ans;
}
int op3() {
int ans = 0;
if(s[i] == '(') {
i++;
ans = op1();
i++;
} else {
while(isdigit(s[i]) && i < s.size()) {
ans *= 10;
ans += s[i] - '0';
i++;
}
}
return ans;
}
int main() {
cin >> s;
cout << op1() << '\n';
return 0;
}
// auto start = high_resolution_clock::now();
// auto stop = high_resolution_clock::now();
// auto duration = duration_cast<microseconds>(stop - start);
// cout << "Time taken by function: "
// << duration.count() << " microseconds" << endl;