Сложность: medium
Даны два числа, hour и minutes. Вернуть меньший угол (в градусах), образованный часовой и минутной стрелками.
Ответы с точностью до 10^-5 от фактического значения будут считаться правильными.
Пример:
Input: hour = 12, minutes = 30
Output: 165
👨💻 Алгоритм:
1⃣Рассчитать углы: minutes_angle = 6 * minutes и hour_angle = (hour % 12 + minutes / 60) * 30.
2⃣Найти разницу: diff = abs(hour_angle - minutes_angle).
3⃣Вернуть меньший угол: min(diff, 360 - diff).
😎 Решение:
class Solution {
func angleClock(_ hour: Int, _ minutes: Int) -> Double {
let oneMinAngle = 6.0
let oneHourAngle = 30.0
let minutesAngle = oneMinAngle * Double(minutes)
let hourAngle = (Double(hour % 12) + Double(minutes) / 60.0) * oneHourAngle
let diff = abs(hourAngle - minutesAngle)
return min(diff, 360 - diff)
}
}Ставь 👍 и забирай 📚 Базу знаний