Контест Middle Ошибки, defer, panic и recover обновлено
Калькулятор int64 с ошибками вместо паник на Go
Условие
Вычислите выражения a op b над int64, где op один из + - * / %. Деление целочисленное с отбрасыванием дробной части к нулю, остаток имеет знак делимого (как в Go).
Ошибки проверяются по порядку:
- неизвестная операция:
error: unknown op; aилиbне является целым числом из диапазона int64 (допустим знак+или-, затем только цифры):error: bad number;- деление или остаток на ноль:
error: division by zero; - результат не помещается в int64:
error: overflow.
Ввод: n (1 ≤ n ≤ 1000), затем n строк из трёх токенов.
Вывод: результат или ошибка на каждую строку.
Пример
5
7 + 5
7 / 2
-7 % 2
1 / 0
2 ^ 3
12
3
-1
error: division by zero
error: unknown op
Как подойти
ParseInt для разбора, явные проверки деления на ноль и переполнения до вычисления.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Калькулятор обратной польской записи с ошибками на Go
Следующий вопрос
Что выведет Go: порядок defer и вычисление аргументов