Контест Middle Ошибки обновлено

Задача на Swift: калькулятор в обратной польской записи с ошибками

Условие

Вычислите выражения в обратной польской записи. Токены через пробел: целые числа (возможен минус, до 6 цифр) и операции + - * / (деление целочисленное с отбрасыванием дробной части, как в Swift).

Для каждой строки выведите результат или первую возникшую ошибку:

  • ERROR bad token <токен>: токен не число и не операция;
  • ERROR stack underflow: операции не хватает операндов, или строка не дала ни одного числа;
  • ERROR division by zero;
  • ERROR extra operands: после вычисления в стеке больше одного числа.

Первая строка: n (1 ≤ n ≤ 2·10⁴). Дальше n непустых строк до 30 токенов. Промежуточные значения по модулю не больше 10¹⁸.

Пример

5
3 4 + 2 *
1 0 /
5 +
2 3
7 x *
14
ERROR division by zero
ERROR stack underflow
ERROR extra operands
ERROR bad token x

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.