Какой угол между стрелками часов в 3:15?

Почему часовая стрелка в 3:15 уже не стоит точно на трёх и как вычислить меньший угол между стрелками.

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

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

Меньший угол равен 7,5°. Минутная стрелка находится на 90° от отметки 12. Часовая движется непрерывно: к 3:15 она прошла 90° за три часа и ещё 7,5° за четверть часа, то есть находится на 97,5°. Разница — 7,5°, а не ноль.

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

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

Предполагаются обычные аналоговые часы с равномерным движением стрелок и точное время 3:15:00. Нужно найти меньший угол.

  1. Минутная стрелка проходит 360° за 60 минут, то есть 6° в минуту. Через 15 минут её положение — 15 × 6 = 90° от отметки 12.
  2. Часовая стрелка проходит 30° в час, или 0,5° в минуту. В 3:15 она находится на 3 × 30 + 15 × 0,5 = 97,5°.
  3. Разность положений равна |97,5 − 90| = 7,5°.

Ошибка с ответом «0°» возникает, если считать, что часовая стрелка весь час неподвижно стоит на цифре 3. На обычных часах она постепенно движется к 4.

Обобщение для часов и минут:

def clock_angle(hours, minutes)
  hour_angle = (hours % 12) * 30 + minutes * 0.5
  minute_angle = minutes * 6
  difference = (hour_angle - minute_angle).abs
  [difference, 360 - difference].min
end

p clock_angle(3, 15) # 7.5
p clock_angle(12, 0) # 0.0
p clock_angle(6, 0)  # 180.0

Функция предполагает корректные входные значения: целые часы и минуты от 0 до 59. Остаток по модулю 12 учитывает двенадцатичасовой циферблат. Последняя строка выбирает меньший из двух углов; решение использует O(1) времени и памяти.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку