Шесть задач, которые выглядят простыми, но в каждой спрятана одна ловушка. Они здесь ради метода: перед отправкой выпишите два-три крошечных теста — отрицательное число, ноль, самое большое допустимое значение, — посчитайте ответы вручную и проверьте, что программа с ними согласна.
- «Digit Sum»: числа могут быть отрицательными, нулём или огромными — до 10¹⁸. Что ваш цикл сделает с −45? А с 0?
- «Сумма цифр 2»: сумма цифр суммы цифр — одна функция, вызванная дважды. Число и здесь может быть отрицательным.
- «Clamp» (вторая): та же идея, что на первой странице практики, но значения до 10¹⁸. Каждая
переменная и каждый параметр должны быть
long long. - «Манхэттенское расстояние до базы»: одно расстояние может дойти до 4·10⁹, а
сумма тысячи таких расстояний далеко выходит за пределы
int. - «Euclid»: числа бывают отрицательными, а НОД(0, 0) равен 0. Циклу Евклида нужны неотрицательные числа.
- «Normalize a Fraction»: знаменатель в итоге должен быть положительным, а 0/5 должно превратиться в 0/1. Посчитайте вручную 4/−6, −5/−10 и 0/−7, прежде чем что-либо запускать.