Сложность: 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 {
public double angleClock(int hour, int minutes) {
int oneMinAngle = 6;
int oneHourAngle = 30;
double minutesAngle = oneMinAngle * minutes;
double hourAngle = (hour % 12 + minutes / 60.0) * oneHourAngle;
double diff = Math.abs(hourAngle - minutesAngle);
return Math.min(diff, 360 - diff);
}
}Ставь 👍 и забирай 📚 Базу знаний