Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <cctype>
- bool isValidNumber(std::string& n) {
- return (isdigit(n[0]) || ((n[0] == '-') && isdigit(n[1])));
- }
- void handleSum(std::vector<int>& numbers) {
- int lastNum = numbers[numbers.size() - 1];
- int secondLast = numbers[numbers.size() - 2];
- numbers.pop_back();
- numbers.pop_back();
- numbers.push_back(lastNum + secondLast);
- }
- void handleSubtract(std::vector<int>& numbers) {
- int lastNum = numbers[numbers.size() - 1];
- int secondLast = numbers[numbers.size() - 2];
- numbers.pop_back();
- numbers.pop_back();
- numbers.push_back(lastNum - secondLast);
- }
- void handleConcat(std::vector<int>& numbers) {
- int lastNum = numbers[numbers.size() - 1];
- int secondLast = numbers[numbers.size() - 2];
- numbers.pop_back();
- numbers.pop_back();
- std::string firstNum = std::to_string(secondLast);
- std::string secondNum = std::to_string(lastNum);
- std::string result = firstNum + secondNum;
- numbers.push_back(std::stoi(result));
- }
- void discard(std::vector<int>& numbers) {
- numbers.pop_back();
- }
- int main() {
- std::vector<int> numbers;
- std::string input;
- while (std::cin >> input && input != "end") {
- if (isValidNumber(input)) {
- numbers.push_back(std::stoi(input));
- continue;
- }
- if (input == "sum") handleSum(numbers);
- else if (input == "subtract") handleSubtract(numbers);
- else if (input == "concat") handleConcat(numbers);
- else if (input == "discard") discard(numbers);
- }
- for (auto& n : numbers) std::cout << n << std::endl;
- }
Add Comment
Please, Sign In to add comment