mstoyanov7

hristomir

Apr 17th, 2022 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <cctype>
  5.  
  6. bool isValidNumber(std::string& n) {
  7.     return (isdigit(n[0]) || ((n[0] == '-') && isdigit(n[1])));
  8. }
  9.  
  10. void handleSum(std::vector<int>& numbers) {
  11.     int lastNum = numbers[numbers.size() - 1];
  12.     int secondLast = numbers[numbers.size() - 2];
  13.     numbers.pop_back();
  14.     numbers.pop_back();
  15.     numbers.push_back(lastNum + secondLast);
  16. }
  17.  
  18. void handleSubtract(std::vector<int>& numbers) {
  19.     int lastNum = numbers[numbers.size() - 1];
  20.     int secondLast = numbers[numbers.size() - 2];
  21.     numbers.pop_back();
  22.     numbers.pop_back();
  23.     numbers.push_back(lastNum - secondLast);
  24. }
  25.  
  26. void handleConcat(std::vector<int>& numbers) {
  27.     int lastNum = numbers[numbers.size() - 1];
  28.     int secondLast = numbers[numbers.size() - 2];
  29.     numbers.pop_back();
  30.     numbers.pop_back();
  31.     std::string firstNum = std::to_string(secondLast);
  32.     std::string secondNum = std::to_string(lastNum);
  33.     std::string result = firstNum + secondNum;
  34.     numbers.push_back(std::stoi(result));
  35. }
  36.  
  37. void discard(std::vector<int>& numbers) {
  38.     numbers.pop_back();
  39. }
  40.  
  41. int main() {
  42.     std::vector<int> numbers;
  43.     std::string input;
  44.     while (std::cin >> input && input != "end") {
  45.         if (isValidNumber(input)) {
  46.             numbers.push_back(std::stoi(input));
  47.             continue;
  48.         }
  49.         if (input == "sum") handleSum(numbers);
  50.         else if (input == "subtract") handleSubtract(numbers);
  51.         else if (input == "concat") handleConcat(numbers);
  52.         else if (input == "discard") discard(numbers);
  53.     }
  54.  
  55.     for (auto& n : numbers) std::cout << n << std::endl;
  56. }
Add Comment
Please, Sign In to add comment