Определение минимального числа квадратных плиток для покрытия прямоугольника

Количество плиток равно ceil(width / side) × ceil(height / side). Каждое направление округляется отдельно вверх, поскольку плитки нельзя резать.

Короткий ответ

Что ответить на собеседовании

Количество плиток равно ceil(width / side) × ceil(height / side). Каждое направление округляется отдельно вверх, поскольку плитки нельзя резать.

Подробный разбор

Ответ с пояснениями

Условие

Имеется прямоугольная область размером ширина × высота метров и квадратные плитки со стороной side метров. Нужно вычислить наименьшее количество таких плиток, которое гарантирует полное покрытие области. Плитки нельзя разрезать, их стороны должны быть параллельны сторонам области. Допускается, что покрытие выходит за пределы исходного прямоугольника, но сама область обязана быть полностью покрытой.

Ответ

Количество плиток равно ceil(width / side) × ceil(height / side). Каждое направление округляется отдельно вверх, поскольку плитки нельзя резать.

function tileCount(width, height, side) {
  if (![width, height, side].every(Number.isFinite) || width < 0 || height < 0 || side <= 0) {
    throw new RangeError('Некорректные размеры');
  }
  return Math.ceil(width / side) * Math.ceil(height / side);
}

Для области 6×6 и плитки 4×4 нужны четыре плитки, хотя отношение площадей округляется до трёх. Деление площадей не учитывает требования покрытия по обеим осям. Нулевая ширина или высота даёт 0; для огромных целых размеров нужно учитывать точность Number или использовать целочисленный BigInt.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее